|
Здравствуйте, гость ( Вход | Регистрация )
|
![]()
Сообщение
#21
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 719 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 656 раз ![]() |
Скрипты для чтения лент новостей с сайтов
Названия: Платформа: PtokaX API: API 2 Автор: Ksan Дата: 1-я версия: 2014-07-07, последняя: 2016-07-27 Библиотеки: - для работы скрипта Rss_RussiaToday требуется библиотека SSL (примечание - виндовая Птока должна быть версии x86, а если кому удалось найти рабочую библиотеку для Птоки x64, поделитесь тут в теме). В PtokaX 0.5.0.1 Mod x86 от Alex82 виндовая библиотека уже встроена в папке libs. - для работы скриптов Rss_RusNext и Rss_RusVesna требуется библиотека LuaSocket Примечание: для последней версии Rss_RussiaToday (он же Rss_RT_Curl) необходима программа cURL (заменит библиотеку SSL), кладётся в отдельную папку Curl в корневой папке Птоки (папку с Curl'ом выкладываю в архиве скрипта). Возможности: - периодически выводит в чат последнюю новость с ленты RSS (частоту вывода прописанный в скрипт админ может менять или совсем отменить, введя цифру 0), по умолчанию стоит = 45 минут (для болтливых чатов можно уменьшить (в скрипте либо через меню)) - админ, прописанный в скрипте, может принудительно вывести в чат последнюю новость - через меню можно получать в приват по запросу последние новости (1-20 новостей - по желанию) - то же самое с жёстко прописанным в скрипте числом (у меня по умолчанию = 3) через отдельную строку в меню (для ленивых) - скрипт Rss_RT_Curl при старте будет самопроверяться - скачает ленту (не обязательно), создаст вспомогательный файл (с Curl иначе никак), если его не было, при успешном получении информации и наличии файла сформирует последнюю новость и отправит в приват админу, чей ник прописан в настройках скрипта (предполагается, что он и будет запускать скрипт). Если же с сайта информация не получится, то, скорее всего, прилетит пустая новость, но файл будет создан (у меня создаётся). Я не уверен, что как-то можно получить "error" Curl'ом с сайта. Иногда при старте не выдаёт тестовую новость, хотя файл с RSS создаётся. Но обычно следующий вызов новости срабатывает нормально. Пример вывода в чат: Код [21:30:53] <Rss_Russian.RT.com> •••• Один человек погиб, семеро ранены при взрыве в турецкой Бурсе •••• Один человек погиб и семеро получили ранения при взрыве в центре городе Бурса на северо-западе Турции в районе исторической мечети Улу Джами. Об этом сообщают местные СМИ... Вся новость тут: https://russian.rt.com/article/300108-odin-chelovek-pogib-semero-raneny-pri-vzryve [ Среда, 27 Апр. 2016 18:23:00 (мск) ] ———————————————————————————————————————— UPD-1: -- сегодня что-то чуток изменили на сайте RT-ленты и в выводимых новостях появился артефакт, так что вот подправил код и перезалил скрипт. UPD-2: -- на сайте новостей повысили степень защищённости и теперь парсить можно стало только используя библиотеку SSL. Скрипт перезалит. UPD-3: -- на сайте новостей сделали редизайн страниц новостей, скрипт пришлось тоже подогнать под это дело. Скрипт перезалит. UPD-4: -- на сайте новостей опять внесли маленькое изменение и в показываемой новости стали появляться артефакты. Исправил скрипт и перезалил. И именно поэтому в срочном порядке сегодня перелепил этот же скрипт под другой сайт новостей - RusNext (альтернативная версия РусВесны), скрипт выложен тут же, ссылка ниже. Вот невезуха - и там та же проблема, теперь этот же скрипт загрузил под третий сайт новостей - RusVesna, скрипт выложен тут же, ссылка ниже. Хорошо, что эти два последних ресурса имеют одинаковый код исходников RSS, так что очень почти ничего не пришлось менять (ссылку да ещё чуть-чуть по мелочи).. По RusNext - отбой тревоги, только залил последний скрипт, так этот RSS тоже заработал. Ладно, пусть тоже лежит. ---------- Так, на всякий случай - на сайте RT заработал RSS, но данные скрипту по-прежнему не отдаются, ошибка та же - "closed". Так что я продолжаю у себя юзать скрипт под Руснекст. Внимание! Важное замечание для всех - эти три скрипта имеют одинаковые команды (наследие первого скрипта под RT), поэтому совместное использование нежелательно. При желании можете сами их изменить под каждый скрипт (под Руснекст и Русвесну). Вот эти три команды (просто можете в конце каждой команды добавить буквы "rn" для Руснекста и "rv" для Русвесны): Код local sCmdRssFreq = "!cmdrssrtfreq" -- (смена периода для чата) local sCmdRssPrivat = "!cmdrssrtprivat" -- (новость в приват) local sCmdRssChat = "!cmdrssrtchat" -- (новость в чат (от админа и випа)) Примечание: - Перелопатил скрипт Rss_RussiaToday, последняя версия будет называться Rss_RT_Curl (из-за нежелания сайта отдавать скрипты по-доброму, пришлось вот состряпать курловую вытяжку по наводке Saymon21, хотя и несколько другим манером). Для этой версии скрипта необходимо иметь папку Rss_RT_Curl в папке scripts (папку Rss_RT_Curl я положил в архив, просто перенесите) и положить отдельную папку Curl в корневой папке Птоки (папку с Curl'ом тоже выкладываю в архиве скрипта). Папка с Curl'ом - только для Винды. У кого линукс - не обессудьте, у меня сейчас только винда, не на чём пробовать. Да и так есть ещё 2 рабочих скрипта - новости с Русвесны и с РусНекста. UPD-5: Из-за моей халатности при подготовке папки с Курлом для отправки на форум скрипт у вас не срабатывал. :( Решение: содержимое папки Curl (три файла) нужно там же переместить в папку bin, которую сначала там же (в папке Curl) надо предварительно создать. После этого перезапустить скрипт. Я это проделал и перезалил архив. Вы можете сами у себя проделать то же самое и без перекачивания архива. ---------- Дата заливки Rss_RusNext: 2016-07-17 07:00 (мск) Дата заливки Rss_RusVesna: 2016-07-17 09:20 (мск) Дата заливки Rss_RT_Curl: 2016-08-09 05:00 (мск)
Прикрепленные файлы
![]() ![]() ![]() ![]() |
|
|
![]() |
![]()
Сообщение
#22
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 719 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 656 раз ![]() |
Saymon21, предложенным тобой курлом не справился (мне нужна виндовая версия, а там линуксовые, не стал возиться), но получается через курл
|
|
|
![]()
Сообщение
#23
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
Да, но там надо будет через io.popen, и он должен быть в системе или $PATH. Попроси Алекса82 собрать.
![]() Кстати, если мне не изменяет память, то попробуй либку из luaaio. |
|
|
![]()
Сообщение
#24
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 719 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 656 раз ![]() |
Перелопатил скрипт Rss_RussiaToday, последняя версия будет называться Rss_RT_Curl (из-за нежелания сайта отдавать скрипты по-доброму, пришлось вот состряпать курловую вытяжку по наводке Saymon21, хотя и несколько другим манером). Для этой версии скрипта необходимо иметь папку Rss_RT_Curl в папке scripts (папку Rss_RT_Curl я положил в архив, просто перенесите) и положить отдельную папку Curl в корневой папке Птоки (папку с Curl'ом тоже выкладываю в архиве скрипта). Папка с Curl'ом - только для Винды. У кого линукс - не обессудьте, у меня сейчас только винда, не на чём пробовать. Да и так есть ещё 2 рабочих скрипта - новости с Русвесны и с РусНекста.
Скрипт Rss_RT_Curl при старте будет самопроверяться - скачает ленту (не всегда), создаст вспомогательный файл (с Curl иначе никак), если его не было, при успешном получении информации и наличии файла сформирует последнюю новость и отправит в приват админу, чей ник прописан в настройках скрипта (предполагается, что он и будет запускать скрипт). Если же с сайта информация не получится, то, скорее всего, прилетит пустая новость, но файл будет создан (у меня создаётся). Я не уверен, что как-то можно получить "error" Curl'ом с сайта. Иногда при старте не выдаёт тестовую новость, хотя файл с RSS создаётся. Но обычно следующий вызов новости срабатывает нормально. Дата заливки Rss_RT_Curl: 2016-07-27 13:10 (мск) |
|
|
![]()
Сообщение
#25
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
Код local path_separator = package.config:sub(1,1) if path_separator == '/' then local sCurl = "curl -L --retry 3 --connect-timeout 10 -m 15 -s -o "..sTempFile elseif path_separator == '\\' then local sCurl = Core.GetPtokaXPath().."Curl/bin/curl.exe -L --retry 3 --connect-timeout 10 -m 15 -s -o "..sTempFile end Примерно вот патч, чтобы и в венде и в линуксе пахало. Для линуксоидов должен быть в системе и в $PATH. |
|
|
![]()
Сообщение
#26
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 719 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 656 раз ![]() |
Saymon21, по крайней мере, у меня на винде сработало (только я засунул это в функцию OnStartup() сразу под названием функции и убрал local от sCurl'ов).
Надеюсь, люди сами прочитают про этот кусок и сделают у себя, если кому приспичит (это я про линуксоидов). А виндовым ни к чему. Когда и если кто напишет, что под линукс тоже работает, тогда я это внесу в публичный скрипт. |
|
|
![]()
Сообщение
#27
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 10 Регистрация: 5.10.2014 Пользователь №: 12 532 Спасибо сказали: 0 раз ![]() |
Что то молчит скрипт, не ошибок, ни новостей не выводит
![]() |
|
|
![]()
Сообщение
#28
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 719 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 656 раз ![]() |
Nikolaevich, тот же самый скрипт (если вы про Rss_RT_Curl) у меня работает - при старте создаёт первичный вспомогательный файл в папке Rss_RT_Curl (если отсутствует), но в в приват тестовую новость выдаёт пустой, но следующий раз (например, отправить новость в чат) отрабатывает нормально. И последующие тоже.
На втором компе этот же скрипт стоит, но первый тестовый при старте в приват кидает нормальную новость. Потому я и предупреждал, что может показать, может и нет, но тут главное, что создаст файл. Хотя я мог бы заранее рекомендовать всем самим создавать там файл. Но почему у вас не пашет, ничего не могу сказать. Вы же не пишете, какая у вас система, разрядность (хотя разрядность тут вряд ли имеет значение, я специально для этого выставил при скрипте Curl для 32-разрядных систем (виндовых), чтоб наверняка). Если у вас линукс, то вам нужно установить (если не стоит) Curl, выполните что-нибудь типа Цитата sudo apt-get install curl и далее - как выше советует Saymon21, добавьте кусок кода, только сделайте это так, как я описал в следующем после Saymon21 комменте. |
|
|
![]()
Сообщение
#29
|
|
![]() Наруто на аваторке ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 770 раз ![]() |
поставил курловый скрипт, сильно времени лазить нет в скрипте, просто поставил, решил проверить новость, а в ответ
Цитата [22:23:22] <Big-eyed> Артём: *** Не злоупотребляйте запросами! Между ними должно пройти не менее 30 секунд после предыдущего запроса (Вашего или чужого). [22:25:07] <Big-eyed> Артём: *** Не злоупотребляйте запросами! Между ними должно пройти не менее 30 секунд после предыдущего запроса (Вашего или чужого). а в ЛС Цитата [22:26:28] <Rss_Russian.RT.com> [22:27:39] <Rss_Russian.RT.com> пустота ![]() |
|
|
![]()
Сообщение
#30
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 719 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 656 раз ![]() |
Артём, это моя халатность при подготовке папки с Курлом для отправки на форум. :(
UPD: Содержимое папки Curl (три файла) нужно там же переместить в папку bin, которую сначала там же (в папке Curl) надо предварительно создать. После этого перезапустить скрипт. Я это проделал и перезалил архив. Вы можете сами у себя проделать то же самое без перекачивания архива. |
|
|
![]()
Сообщение
#31
|
|
![]() Наруто на аваторке ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 770 раз ![]() |
Ksan, ну, уж не знаю, сделал всё как положено(описано) симптомы такие же.
останусь тогда на русвесне ![]() |
|
|
![]()
Сообщение
#32
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз ![]() |
Ksan, ну, уж не знаю, сделал всё как положено(описано) симптомы такие же. останусь тогда на русвесне ![]() так у тебя вроде на Линуксе хаб.. Цитата Saymon21, по крайней мере, у меня на винде сработало (только я засунул это в функцию OnStartup() сразу под названием функции и убрал local от sCurl'ов). Надеюсь, люди сами прочитают про этот кусок и сделают у себя, если кому приспичит (это я про линуксоидов). А виндовым ни к чему. Когда и если кто напишет, что под линукс тоже работает, тогда я это внесу в публичный скрипт. |
|
|
![]()
Сообщение
#33
|
|
![]() Наруто на аваторке ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 770 раз ![]() |
dimetro, ничего не понял, ну да фиг с ним, весна пусть в чатике кажет новости
![]() |
|
|
![]() ![]() |
![]() |
Сейчас: 19.4.2021, 18:20 |