{"id":25155136,"url":"https://github.com/dub1401/rule34bot","last_synced_at":"2025-04-03T11:17:04.743Z","repository":{"id":219648874,"uuid":"749441762","full_name":"DUB1401/Rule34Bot","owner":"DUB1401","description":"Бот для автоматической трансляции постов категории Rule34 в группу или канал Telegram.","archived":false,"fork":false,"pushed_at":"2024-01-29T22:16:58.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T00:39:58.663Z","etag":null,"topics":["bot","parser","rule34","telegram"],"latest_commit_sha":null,"homepage":"https://r-34.xyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DUB1401.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-28T15:47:23.000Z","updated_at":"2024-01-28T22:06:10.000Z","dependencies_parsed_at":"2024-01-28T23:23:00.424Z","dependency_job_id":"8898d051-b2ec-40dc-ae31-42e6479b872d","html_url":"https://github.com/DUB1401/Rule34Bot","commit_stats":null,"previous_names":["dub1401/rule34bot"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FRule34Bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FRule34Bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FRule34Bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FRule34Bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DUB1401","download_url":"https://codeload.github.com/DUB1401/Rule34Bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246989754,"owners_count":20865331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","parser","rule34","telegram"],"created_at":"2025-02-09T00:40:13.876Z","updated_at":"2025-04-03T11:17:04.728Z","avatar_url":"https://github.com/DUB1401.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rule34Bot\n**Rule34Bot** – это бот, транслирующий посты с сайта [R-34.xyz](https://r-34.xyz/) в группу или канал [Telegram](https://telegram.org/) с автоматической простановкой тегов и форматированием.\n\n## Порядок установки и использования\n1. Загрузить последний релиз. Распаковать.\n2. Установить Python версии не старше 3.10.\n3. В среду исполнения установить следующие пакеты: [pyTelegramBotAPI](https://github.com/eternnoir/pyTelegramBotAPI?ysclid=loq3f2bmuz181940716), [beautifulsoup4](https://launchpad.net/beautifulsoup), [dublib](https://github.com/DUB1401/dublib).\n```\npip install pyTelegramBotAPI\npip install beautifulsoup4\npip install dublib\n```\nЛибо установить сразу все пакеты при помощи следующей команды, выполненной из директории скрипта.\n```\npip install -r requirements.txt\n```\n4. Настроить скрипт путём редактирования _Settings.json_.\n5. Назначить бота администратором группы или канала.\n6. Открыть директорию со скриптом в терминале. Можно использовать метод `cd` и прописать путь к папке, либо запустить терминал из проводника.\n7. Выполнить последовательно команды для парсинга и отправки поста в Telegram.\n8. Автоматизация процесса производится при помощи сторонних утилит, таких как **crond** в Linux или **Планировщик задач** в Windows.\n\n# Консольные команды\n```\nclear [FIELD]\n```\nОчищает поля в файле _Posts.json_. При отстутсвии флага очищает сразу все поля. \n\n**Описание позиций:**\n* **FIELD** – ключ поля, в котором необходимо сбросить значение.\n\t* Флаги:\n\t\t* _**-errors**_ – указывает для сброса поле _errors_;\n\t\t* _**-id**_ – указывает для сброса поле _id_;\n\t\t* _**-sended**_ – указывает для сброса поле _sended_;\n\t\t* _**-unsended**_ – указывает для сброса поле _unsended_.\n___\n```\nparse [TARGET*]\n```\nПарсит один пост или получает все обновления и помещает их в файл _Posts.json_.\n\n**Описание позиций:**\n* **TARGET** – цель для парсинга. Обязательная позиция.\n\t* Аргмуент – ID поста.\n\t* Флаги:\n\t\t* _**-new**_ – указывает, что нужно спарсить все обновления на сайте (если файл _Posts.json_ пуст, будут получены последние 30 постов).\n___\n```\nsend\n```\nФормирует пост и отправляет его в группу или канал Telegram. Имеет следующие правила:\n\n1. Теги, не умещающиеся в лимит 1024 символов, будут удалены.\n2. Максимальный размер вложения – 20 MB. ID постов, имеющих больший размер, будут помещены в поле _errors_.\n___\n```\nunblock\n```\nУдаляет файл _blocked_, использующийся для запрета отправки сообщений во время парсинга.\n\n# Settings.json\n```JSON\n\"token\": \"\"\n```\nСюда необходимо занести токен бота Telegram (можно получить у [BotFather](https://t.me/BotFather)).\n___\n```JSON\n\"target\": \"\"\n```\nСюда необходимо занести ID канала Telegram (можно получить у [Chat ID Bot](https://t.me/chat_id_echo_bot)).\n___\n```JSON\n\"random\": false\n```\nЕсли позиция активна, то бот будет отправлять случайный пост, иначе – первый в порядке убывания ID.\n___\n```JSON\n\"sections-names\": {\n\t\"artists\": \"Автор|ы\",\n\t\"characters\": \"Персонаж|и\",\n\t\"fandoms\": \"Фэндом|ы\",\n\t\"tags\": \"Тег|и\",\n\t\"source\": \"Источник\"\n}\n```\nУказывает названия секций. Через символ прямой черты можно задать окончание, отбрасываемое в случае, если за названием секции следует только один тег (исключение – _source_).\n___\n```JSON\n\"delay\": 1\n```\nЗадаёт интервал в секундах для паузы между запросами к сайту.\n\n_Copyright © DUB1401. 2024._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdub1401%2Frule34bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdub1401%2Frule34bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdub1401%2Frule34bot/lists"}