myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Rss_RT_Curl + Rss_RusNext + Rss_RusVesna, Ленты посл. новостей от RussiaToday, RusNext и RusVesna

Теги
Ksan
сообщение 7.7.2014, 8:26
Сообщение #21


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Скрипты для чтения лент новостей с сайтов http://russian.rt.com/, http://rusnext.su/ и http://rusvesna.su/
Названия: Rss_RussiaToday.lua Rss_RT_Curl.lua, Rss_RusNext.lua и Rss_RusVesna.lua
Платформа: PtokaX
API: API 2
Автор: Ksan
Дата: 1-я версия: 2014-07-07, последняя: 2022-06-24 (Rss_RT_Curl.lua)

Библиотеки:
- для работы скрипта 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:
-- на сайте новостей опять внесли маленькое изменение и в показываемой новости стали появляться артефакты. Исправил скрипт и перезалил.
ВНИМАНИЕ! - скрипт Rss_RussiaToday пока не работает из-за проблем с RSS на сайте RT.
И именно поэтому в срочном порядке сегодня перелепил этот же скрипт под другой сайт новостей - 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:
Из-за моей халатности при подготовке папки с Курлом для отправки на форум скрипт Rss_RT_Curl у вас не срабатывал. :(
Решение: содержимое папки Curl (три файла) нужно там же переместить в папку bin, которую сначала там же (в папке Curl) надо предварительно создать. После этого перезапустить скрипт.
Я это уже проделал и перезалил архив. Вы можете сами у себя проделать то же самое и без перекачивания архива.

UPD-6:
Скрипт Rss_RT_Curl долгое время не работал (по крайней мере, у меня), руки не доходили проверить причину, сегодня добрался, оказалось, надо было заменить Curl на свежую версию (возможно, это на последних версиях Вин 10 (у меня это стоит) только происходит, не могу проверить точнее). Заменил, заработал. Архив перезалил, но не на сервер форума (он почему-то оказался недоступен), а на свой Яндекс.Диск (ниже ссылка). UPD: глюк с загрузкой исправили, так что добавил файл в ресурс (в списке нижний), прежний, из моего Я.Диска, оставил как есть..
Похоже, остальные файлы будут недоступны по вышеобозначенной причине.
----------
Дата перезаливки Rss_RussiaToday: 2016-05-13 02:55 (мск)
Дата заливки Rss_RusNext: 2016-07-17 07:00 (мск)
Дата заливки Rss_RusVesna: 2016-07-17 09:20 (мск)
Дата заливки Rss_RT_Curl: 2022-06-24 09:20 (мск)
-----------
Rss_RT_Curl ( 4.24 мегабайт )
Прикрепленные файлы
Прикрепленный файл  Rss_RusNext.lua ( 10.83 килобайт ) Кол-во скачиваний: 40
Прикрепленный файл  Rss_RusVesna.lua ( 10.84 килобайт ) Кол-во скачиваний: 47
Прикрепленный файл  Rss_RT_Curl.rar ( 4.25 мегабайт ) Кол-во скачиваний: 3
 
Go to the top of the page
+Quote Post
2 страниц V  < 1 2  
Начать новую тему
Ответов
Ksan
сообщение 19.7.2016, 23:55
Сообщение #22


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Saymon21, предложенным тобой курлом не справился (мне нужна виндовая версия, а там линуксовые, не стал возиться), но получается через курл отсюда, там есть под любой вкус и ОС. Попозже приспособлю к своему скрипту.
Go to the top of the page
+Quote Post
Saymon21
сообщение 20.7.2016, 5:40
Сообщение #23


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Да, но там надо будет через io.popen, и он должен быть в системе или $PATH. Попроси Алекса82 собрать. big_smile.gif
Кстати, если мне не изменяет память, то попробуй либку из luaaio.
Go to the top of the page
+Quote Post
Ksan
сообщение 27.7.2016, 13:29
Сообщение #24


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Перелопатил скрипт 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 (мск)


Спасибо сказали:
Go to the top of the page
+Quote Post
Saymon21
сообщение 27.7.2016, 13:39
Сообщение #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.


Спасибо сказали:
Go to the top of the page
+Quote Post
Ksan
сообщение 27.7.2016, 14:17
Сообщение #26


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Saymon21, по крайней мере, у меня на винде сработало (только я засунул это в функцию OnStartup() сразу под названием функции и убрал local от sCurl'ов).
Надеюсь, люди сами прочитают про этот кусок и сделают у себя, если кому приспичит (это я про линуксоидов). А виндовым ни к чему.
Когда и если кто напишет, что под линукс тоже работает, тогда я это внесу в публичный скрипт.
Go to the top of the page
+Quote Post
Nikolaevich
сообщение 27.7.2016, 16:28
Сообщение #27


Начинающий
*

Группа: Пользователи
Сообщений: 10
Регистрация: 5.10.2014
Пользователь №: 12 532
Спасибо сказали: 1 раз




Что то молчит скрипт, не ошибок, ни новостей не выводит still_dreaming.gif .
Go to the top of the page
+Quote Post
Ksan
сообщение 29.7.2016, 1:13
Сообщение #28


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Nikolaevich, тот же самый скрипт (если вы про Rss_RT_Curl) у меня работает - при старте создаёт первичный вспомогательный файл в папке Rss_RT_Curl (если отсутствует), но в в приват тестовую новость выдаёт пустой, но следующий раз (например, отправить новость в чат) отрабатывает нормально. И последующие тоже.
На втором компе этот же скрипт стоит, но первый тестовый при старте в приват кидает нормальную новость. Потому я и предупреждал, что может показать, может и нет, но тут главное, что создаст файл. Хотя я мог бы заранее рекомендовать всем самим создавать там файл.
Но почему у вас не пашет, ничего не могу сказать. Вы же не пишете, какая у вас система, разрядность (хотя разрядность тут вряд ли имеет значение, я специально для этого выставил при скрипте Curl для 32-разрядных систем (виндовых), чтоб наверняка). Если у вас линукс, то вам нужно установить (если не стоит) Curl, выполните что-нибудь типа
Цитата
sudo apt-get install curl

и далее - как выше советует Saymon21, добавьте кусок кода, только сделайте это так, как я описал в следующем после Saymon21 комменте.
Go to the top of the page
+Quote Post
Артём
сообщение 8.8.2016, 22:26
Сообщение #29


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




поставил курловый скрипт, сильно времени лазить нет в скрипте, просто поставил, решил проверить новость, а в ответ
Цитата
[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>

пустота
unhappy.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Ksan
сообщение 9.8.2016, 4:54
Сообщение #30


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Артём, это моя халатность при подготовке папки с Курлом для отправки на форум. :(

UPD:
Содержимое папки Curl (три файла) нужно там же переместить в папку bin, которую сначала там же (в папке Curl) надо предварительно создать. После этого перезапустить скрипт.
Я это проделал и перезалил архив. Вы можете сами у себя проделать то же самое без перекачивания архива.


Спасибо сказали:
Go to the top of the page
+Quote Post
Артём
сообщение 9.8.2016, 11:05
Сообщение #31


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




Ksan, ну, уж не знаю, сделал всё как положено(описано) симптомы такие же.

останусь тогда на русвесне baffle.gif
Go to the top of the page
+Quote Post
dimetro
сообщение 9.8.2016, 15:57
Сообщение #32


Активный участник
***

Группа: Пользователи
Сообщений: 69
Регистрация: 14.9.2009
Пользователь №: 4 440
Спасибо сказали: 19 раз




Цитата(Артём @ 9.8.2016, 11:05) *
Ksan, ну, уж не знаю, сделал всё как положено(описано) симптомы такие же.

останусь тогда на русвесне baffle.gif

так у тебя вроде на Линуксе хаб..
Цитата
Saymon21, по крайней мере, у меня на винде сработало (только я засунул это в функцию OnStartup() сразу под названием функции и убрал local от sCurl'ов).
Надеюсь, люди сами прочитают про этот кусок и сделают у себя, если кому приспичит (это я про линуксоидов). А виндовым ни к чему.
Когда и если кто напишет, что под линукс тоже работает, тогда я это внесу в публичный скрипт.



Спасибо сказали:
Go to the top of the page
+Quote Post
Артём
сообщение 10.8.2016, 14:45
Сообщение #33


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




dimetro, ничего не понял, ну да фиг с ним, весна пусть в чатике кажет новости big_smile.gif
Go to the top of the page
+Quote Post
Ksan
сообщение 24.6.2022, 9:28
Сообщение #34


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




UPD-6:
Скрипт Rss_RT_Curl долгое время не работал (по крайней мере, у меня), руки не доходили проверить причину, сегодня добрался, оказалось, надо было заменить Curl на свежую версию (возможно, это на последних версиях Вин 10-11 (у меня это стоит) только происходит, не могу проверить точнее), возможно, дело в разрядности (сейчас поставил х64, если у кого всё работает, то ничего менять не надо). Заменил, заработал. Архив перезалил, но не на сервер форума (он почему-то оказался недоступен), а на свой Яндекс.Диск (ниже ссылка). UPD: глюк с загрузкой исправили, так что добавил файл в ресурс (в списке нижний), прежний, из моего Я.Диска, оставил как есть..
Похоже, остальные файлы будут недоступны по вышеобозначенной причине.

Rss_RT_Curl ( 4.24 мегабайт )

Прикрепленные файлы
Прикрепленный файл  Rss_RT_Curl.rar ( 4.25 мегабайт ) Кол-во скачиваний: 1
 


Спасибо сказали:
Go to the top of the page
+Quote Post

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 29.3.2024, 0:34