myDC.ru

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

 

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

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


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

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




Скрипты для чтения лент новостей с сайтов 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, последняя: 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:
-- на сайте новостей опять внесли маленькое изменение и в показываемой новости стали появляться артефакты. Исправил скрипт и перезалил.
ВНИМАНИЕ! - скрипт 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:
Из-за моей халатности при подготовке папки с Курлом для отправки на форум скрипт у вас не срабатывал. :(
Решение: содержимое папки Curl (три файла) нужно там же переместить в папку bin, которую сначала там же (в папке Curl) надо предварительно создать. После этого перезапустить скрипт.
Я это проделал и перезалил архив. Вы можете сами у себя проделать то же самое и без перекачивания архива.
----------
Дата перезаливки Rss_RussiaToday: 2016-05-13 02:55 (мск)
Дата заливки Rss_RusNext: 2016-07-17 07:00 (мск)
Дата заливки Rss_RusVesna: 2016-07-17 09:20 (мск)
Дата заливки Rss_RT_Curl: 2016-08-09 05:00 (мск)

Прикрепленные файлы
Прикрепленный файл  Rss_RT_Curl.rar ( 1.34 мегабайт ) Кол-во скачиваний: 28
Прикрепленный файл  Rss_RussiaToday.lua ( 11.05 килобайт ) Кол-во скачиваний: 40
Прикрепленный файл  Rss_RusNext.lua ( 10.83 килобайт ) Кол-во скачиваний: 19
Прикрепленный файл  Rss_RusVesna.lua ( 10.84 килобайт ) Кол-во скачиваний: 22
 
Go to the top of the page
+Quote Post
2 страниц V  < 1 2  
Начать новую тему
Ответов
Ksan
сообщение 19.7.2016, 23:55
Сообщение #22


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

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




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 716
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 650 раз




Перелопатил скрипт 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 716
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 650 раз




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
Спасибо сказали: 0 раз




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


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

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




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 605
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 767 раз




поставил курловый скрипт, сильно времени лазить нет в скрипте, просто поставил, решил проверить новость, а в ответ
Цитата
[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 716
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 650 раз




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

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


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


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

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




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 605
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 767 раз




dimetro, ничего не понял, ну да фиг с ним, весна пусть в чатике кажет новости big_smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Сейчас: 18.11.2018, 7:43