Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Сетевые скрипты [PtokaX] _ Wiki INFO v 1.1

Автор: DEN 007 8.12.2010, 22:56

Название: Wiki info v 1.0
Версия API: 2
Версия скрипта: 1.1 бета
Автор: DEN 007 & помог Nickolya.
Описание:
Смысл скрипта заключается в получении статьи из википедии на хаб. http://mydc.ru/topic1740.html на форуме но, он работает не совсем корректно.

Отличие от скрипта уже выложенного на форуме:
Парсится не вся страница с вики, а только небольшая часть, то есть получаем кратенькую информация (Опционально). Если страницы не существует то приходит ответ о несуществующей странице. Сам скрипт состоит из двух частей сам LUA скрипт и парсер на php.
Предусмотренно меню; профили, которым доступна команда.

Выводит материалы из википедии по команде: !wiki <слово> или через меню.

Цитата
В версии 1.1:
1. Вынесены настройки
2. Добавлена настройка слать в приват или в чат (спс Saymon)
3. подправлен баг (не показывалась первая буква)


Для работы требуется библиотека http://mydc.ru/topic43.html.

Цитата
В архиве лежит php парсер но, если вдруг у вас нет веб сервера и вы не знаете как его поставить или еще какая то причина пользуйтесь моим big_smile.gif
Север 1:
хост: www.s001-sml.tk/more
Апи ключ: c1565e44c8ea942c01f9c391320c4e95

Север 2:
хост: www.s006-sml.tk/more
Апи ключ: 3a9e99c70d09a43cf20475734bf6cabe


Скачать:  Wiki_INFO_v1.1.zip ( 10.94 килобайт ) : 167


P.S. Парсится страница для печати, я пробовал парсить через апи их так как это разумнее но, у меня нифига не получилось отфильтровать всю вики разметку, если у кого есть адекватный класс для работы с вики разметкой то напишите (класс есть но, он очень жирный нужен резвый...)

Автор: Dake 8.12.2010, 23:24

скрипт крутой спасибо, но есть не большой баг:
[22:23:16] <[Android_Hub]> инофильм — кинопроизведение (фильм), предназначенное для демонстрации в кинотеатрах (в отличие от телефильма, предназначенного для демонстрации по телевидению).

не показывает первую букву ]> инофильм

Автор: Wariner 9.12.2010, 23:38

поздравляю с реализацией! хорошо что идею не бросили!!!

Автор: DEN 007 11.12.2010, 14:12

Цитата(Dake @ 9.12.2010, 1:24) *
скрипт крутой спасибо, но есть не большой баг:
[22:23:16] <[Android_Hub]> инофильм — кинопроизведение (фильм), предназначенное для демонстрации в кинотеатрах (в отличие от телефильма, предназначенного для демонстрации по телевидению).

не показывает первую букву ]> инофильм


Щяс посмотрю... там есть еще парочка недочетов...

Автор: MARVELtm 11.12.2010, 14:43

Добавить бы в конфигурацию:
Отправлять в приват = true (false)

Автор: Saymon 11.12.2010, 14:49

MARVELtm, Мог бы и сам сделать!
в начало скрипта допиши

Код
SendToPm = true

найди:
Код
if s then
                        Core.SendToNick(tUser.sNick, sBot..s)
                else
                    Core.SendToNick(tUser.sNick, sBot..'Не получилось получить информацию для "'..sElseData..'",попробуйте еще раз если не получилось, возможно какая то проблема с сервером, пожалуйста напишите об этом админам!')
                end


и замени на
Код
                if s then
                    if SendToPm then
                        Core.SendPmToNick(tUser.sNick, sBot, s)
                    else
                        Core.SendToNick(tUser.sNick, sBot..s)
                    end
                else
                    Core.SendToNick(tUser.sNick, sBot..'Не получилось получить информацию для "'..sElseData..'",попробуйте еще раз если не получилось, возможно какая то проблема с сервером, пожалуйста напишите об этом админам!')
                end


ps. не проверял

Автор: DEN 007 13.12.2010, 1:58

Обновил скрипт, актуальный скрипт в первом посте.
Жду ваших предложений.

Автор: ProGeTTo 28.12.2010, 17:32

<[K.o.S]> Компью?тер (англ. computer — «вычислитель»), электро?нная вычисли?тельная маши?на (ЭВМ) — вычислительная машина, предназначенная для передачи, хранения и обработки информации.



я ничего не менял, именно так у меня выдает, я ввел "ЭВМ"

Автор: Ksan 28.12.2010, 18:03

Ну и что такого? Это знаки ударения вылезают в виде вопросительных знаков.
В принципе, можно и это убрать, только зачем..

Автор: ProGeTTo 28.12.2010, 18:31

Цитата(Ksan @ 28.12.2010, 19:03) *
Ну и что такого? Это знаки ударения вылезают в виде вопросительных знаков.
В принципе, можно и это убрать, только зачем..

всё-же это недочёт... как убрать то можно?

Автор: Ksan 28.12.2010, 18:35

Пусть автор убирает, если сочтёт нужным.
Лично я бы не стал, ибо лишняя суета.

Автор: ProGeTTo 28.12.2010, 18:37

Цитата(Ksan @ 28.12.2010, 19:35) *
Пусть автор убирает, если сочтёт нужным.
Лично я бы не стал, ибо лишняя суета.

не, если взялся он то пусть и доделывает...
темболее он писал что если есть недочёты писать сюда! я написал просто!

Автор: DEN 007 30.12.2010, 6:14

Цитата(ProGeTTo @ 28.12.2010, 19:37) *
не, если взялся он то пусть и доделывает...
темболее он писал что если есть недочёты писать сюда! я написал просто!


Да это недочет при условии кодировки cp1251, так и быть подправлю исключительно под нее

----спустя некий промежуток времени-----
Не знаю я как корректно убрать символы ударения с ют8, кто знает обьясните плиз!

Автор: Barmolei0808 17.1.2011, 22:24

Спасибо всё работает.

Автор: Littlemuk 13.3.2011, 19:33

Поставил, все работает, спасибо big_smile.gif
Две небольшие проблемы.
1. Некоторых юзеров (в том числе и меня) выбивает из хаба сразу после ответа бота. Что не так может быть на этих машинах?
2. На некоторые запросы (например, курица) приходит ответ

Цитата
<<Википендия> >
Систематика
на Викивидах

Заранее спасибо big_smile.gif

Автор: the623 16.6.2011, 13:58

а поставить ограничении можно? скажим каждый пользоватль сможет к скрипты обратится только 5 раз и не больше.

Автор: DEN 007 18.6.2011, 0:18

Цитата(the623 @ 16.6.2011, 14:58) *
а поставить ограничении можно? скажим каждый пользоватль сможет к скрипты обратится только 5 раз и не больше.


Можно, но я это делать не буду.

Автор: the623 23.6.2011, 18:53

Цитата(DEN 007 @ 18.6.2011, 1:18) *
Можно, но я это делать не буду.

не подскажите как можно сделать так чтобы запрос посылающий скрипту был ввиден всем, а не только тому кто его послал!

Автор: Saymon21 23.6.2011, 18:55

найти, где она, и заменить Core.SendToUser на Core.SendToAll

Автор: the623 23.6.2011, 19:10

Цитата(Saymon21 @ 23.6.2011, 20:55) *
найти, где она, и заменить Core.SendToUser на Core.SendToAll

Нету такого, вот код
Цитата
local tCache = {}
function OnStartup()
sBot = '<'..iBot..'> '
end
function ChatArrival(tUser, sData)
sData = sData:sub(1, -2)
local sCmd = sData:match '^%b<>%s+%p(%S+)'
if sCmd then
sCmd = sCmd:lower()
if sCmd == sSeeCmd then
local sElseData = sData:match '^%b<>%s+%p%S+%s(.+)'
if sElseData then
local s = GetUrl(sElseData)
if s then
if SendToPm then
Core.SendPmToNick(tUser.sNick, sBot, s)
else
Core.SendToNick(tUser.sNick, sBot..s)
end
else
Core.SendToNick(tUser.sNick, sBot..'Не получилось получить информацию для "'..sElseData..'",попробуйте еще раз если не получилось, возможно какая то проблема с сервером, пожалуйста напишите об этом админам!')
end
else
Core.SendToNick(tUser.sNick, sBot..'Необходимо ввести интересующую фразу.')
end
return true
end
end
end

function UserConnected(tUser)
if tCanUseCmdsProfiles[tUser.iProfile] then
Core.SendToNick(tUser.sNick, sMenu)
end
end
OpConnected = UserConnected
RegConnected = UserConnected

function GetUrl(sUrl)
if tCache[sUrl] then
return tCache[sUrl]
end
local sMustBeUrl, iCode = http.request("http://"..host.."/Wiki-Parser.php?apikey="..apikey.."&link="..sUrl)
if iCode and iCode == 200 and sMustBeUrl and sMustBeUrl ~= "" then
return sMustBeUrl
end
end


Есть Core.SendPmToNick я его менял но ни чего не произошло.

Автор: Saymon21 23.6.2011, 19:18

Core.SendToNick

Автор: the623 23.6.2011, 19:23

Цитата(Saymon21 @ 23.6.2011, 20:18) *
Core.SendToNick

если его менять на Core.SendToAll то вообще перестает работать
Цитата
[22:22:38] <7890ф> !wiki здание

Автор: DEN 007 23.6.2011, 20:04

Цитата(the623 @ 23.6.2011, 20:23) *
если его менять на Core.SendToAll то вообще перестает работать

Странно, попробуй этот код:
http://mydc.ru/r/?http://pastebin.com/0ur5f4Uh
Скачать, и сохранить с расширение lua: http://mydc.ru/r/?http://pastebin.com/download.php?i=0ur5f4Uh

Автор: the623 23.6.2011, 20:09

Цитата(DEN 007 @ 23.6.2011, 21:04) *
Странно, попробуй этот код:
http://mydc.ru/r/?http://pastebin.com/0ur5f4Uh
Скачать, и сохранить с расширение lua: http://mydc.ru/r/?http://pastebin.com/download.php?i=0ur5f4Uh

поставил место русских букв ироглифы и при запросе просто выдает
Цитата
[23:07:52] <7777> !wiki дом

с того сайта скачиваю открываю все по русски а через птоках там вот атк все выглядит
Цитата
п»ї--[[
Wiki info v 1.00 (http://mydc.ru/topic4121.html)
Специально для myDC.ru

Название: Wiki info v 1.00
Версия API: 2
Версия скрипта: 1.0 бета
Автор: Я & помог Nickolya.

з.ы версия клиента 0.4.1.1

Автор: Saymon21 23.6.2011, 20:19

Код
if SendToPm then
                        Core.SendPmToNick(tUser.sNick, sBot, s)
                    else
                        Core.SendToAll(tUser.sNick, sBot..s)
                    end

зачем tUser.sNick ?

Автор: DEN 007 23.6.2011, 21:26

Saymon21, тпфу поправил все норм теперь (проверил).
the623, пастбин обновил http://mydc.ru/r/?http://pastebin.com/0ur5f4Uh , у тебя винда сохрани в кодировке сп1251

P.S. Тока парсер работает оооочень криво, будет время обновлю парсер видимо викепедия что то там изменила...

Автор: the623 23.6.2011, 21:38

Цитата(DEN 007 @ 23.6.2011, 23:26) *
Saymon21, тпфу поправил все норм теперь (проверил).
the623, пастбин обновил http://mydc.ru/r/?http://pastebin.com/0ur5f4Uh , у тебя винда сохрани в кодировке сп1251

P.S. Тока парсер работает оооочень криво, будет время обновлю парсер видимо викепедия что то там изменила...

Спасибо все работает.
я уже спрашивал насчет этого,ну еще раз спрошу. можетe подсказать как еще сделать огрничения скажим один пользователь можеть макс 5 раз воспользоваться скриптом.
P.s Поесню зачем, мне это. Хаб не большой пользователей ~100 .И на мой взгляд интересно обращать внимание на то что спрашивают у вики, ну чтоб пользователь уж совсем не борзел, хорошо было бы ограничение поставить.

Автор: Vizunchik 6.11.2011, 23:13

так то всё работает хорошо но на слово суслик реагирует странно [02:08:36] <VerliHub> Spermophilus (Cuvier, 1825)
да и проблема с ударением осталось

Автор: Pank1 29.3.2012, 12:55

Помогите правильно привязать к данному скрипту зеркальный сайт википедии http://mydc.ru/r/?http://wiki.norcom.ru/wiki/ проблема в том что результат поиска совсем не ток который мне нужен)

Вот пример результата запроса на слово вода
[17:43:20] <Wiki> <table id='mw-fr-revisionratings-box' align='center' class='flaggedrevs-color-1' cellpadding='0'><tr><td class='fr-text' valign='middle'>Состояние</td><td class='fr-value40' valign='middle'>отпатрулирована</td></tr>
- </table></div>
- </div>
- </div>
- </div>


<div id="jump-to-nav" class="mw-jump">
Перейти к: навигация,
поиск
</div>


<div id="mw-content-text" lang="ru" dir="ltr" class="mw-content-ltr"><div class="dablink noprint">У этого термина существуют и другие значения, см. Вода (значения).</div>
- <table class="infobox" border="0" cellpadding="2" cellspacing="0" align="right" style="margin-left:1em; min-width:200px; font-size:smaller;">
- <tr>
- <td colspan="2" align="center" bgcolor="#F0F0C0"><big>Вода</big></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><img alt="Вода: химическая формула" src="/image/Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9mL2ZkL1NwbGFzaF8yX2NvbG9yLmpwZy8yMDBweC1TcGxhc2hfMl9jb2xv
ci5qcGc=" width="200" height="260" /></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><img alt="Вода: вид молекулы" src="/image/Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9lL2U5L1dhdGVyX21vbGVjdWxlX2RpbWVuc2lvbnMuc3ZnLzIwMHB4LVdh
dGVyX21vbGVjdWxlX2RpbWVuc2lvbnMuc3ZnLnBuZw==" width="200" height="214" /></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><img alt="Вода: структура" src="/image/Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8xLzFjL1dhdGVyX21vbGVjdWxlXzNELnN2Zy8xMDBweC1XYXRlcl9tb2xl
Y3VsZV8zRC5zdmcucG5n" width="100" height="86" /></td>
- </tr>
- <tr>
- <th align="center" style="border: 1px solid #C0C090; background-color: #F8EABA; margin-bottom: 3px;" colspan="2">Общие</th>
- </tr>
- <tr>
- <td bgcolor="#F0F0C0">Систематическое наименование</td>
- <td>Оксид водорода

Можно как то разрешить эту проблемку?

Автор: DEN 007 29.3.2012, 15:01

Цитата(Pank1 @ 29.3.2012, 13:55) *
Помогите правильно привязать к данному скрипту зеркальный сайт википедии http://mydc.ru/r/?http://wiki.norcom.ru/wiki/ проблема в том что результат поиска совсем не ток который мне нужен)
Вот пример результата запроса на слово вода
[17:43:20] <Wiki> <table id='mw-fr-revisionratings-box' align='center' class='flaggedrevs-color-1' cellpadding='0'><tr><td class='fr-text' valign='middle'>Состояние</td><td class='fr-value40' valign='middle'>отпатрулирована</td></tr>
- </table></div>
- </div>
- </div>
- </div>


<div id="jump-to-nav" class="mw-jump">
Перейти к: навигация,
поиск
</div>



<div id="mw-content-text" lang="ru" dir="ltr" class="mw-content-ltr"><div class="dablink noprint">У этого термина существуют и другие значения, см. Вода (значения).</div>
- <table class="infobox" border="0" cellpadding="2" cellspacing="0" align="right" style="margin-left:1em; min-width:200px; font-size:smaller;">
- <tr>
- <td colspan="2" align="center" bgcolor="#F0F0C0"><big>Вода</big></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><img alt="Вода: химическая формула" src="/image/Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9mL2ZkL1NwbGFzaF8yX2NvbG9yLmpwZy8yMDBweC1TcGxhc2hfMl9jb2xv
ci5qcGc=" width="200" height="260" /></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><img alt="Вода: вид молекулы" src="/image/Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9lL2U5L1dhdGVyX21vbGVjdWxlX2RpbWVuc2lvbnMuc3ZnLzIwMHB4LVdh
dGVyX21vbGVjdWxlX2RpbWVuc2lvbnMuc3ZnLnBuZw==" width="200" height="214" /></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><img alt="Вода: структура" src="/image/Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8xLzFjL1dhdGVyX21vbGVjdWxlXzNELnN2Zy8xMDBweC1XYXRlcl9tb2xl
Y3VsZV8zRC5zdmcucG5n" width="100" height="86" /></td>
- </tr>
- <tr>
- <th align="center" style="border: 1px solid #C0C090; background-color: #F8EABA; margin-bottom: 3px;" colspan="2">Общие</th>
- </tr>
- <tr>
- <td bgcolor="#F0F0C0">Систематическое наименование</td>
- <td>Оксид водорода

Можно как то разрешить эту проблемку?


нужно парсер писать для твоего этого зеркала...
P.S. Когда я парсер писал я не знал что у вики есть достаточно хорошее апи..
поэтому надо затачивать под апи, в этом скрипте парсится непосредственно мобильная версия на твоём зеркале может быль просто отключена мобильная версия.. Или изменненый дизайн

Автор: Pank1 30.3.2012, 9:31

Цитата(DEN 007 @ 29.3.2012, 17:01) *
нужно парсер писать для твоего этого зеркала...
P.S. Когда я парсер писал я не знал что у вики есть достаточно хорошее апи..
поэтому надо затачивать под апи, в этом скрипте парсится непосредственно мобильная версия на твоём зеркале может быль просто отключена мобильная версия.. Или изменненый дизайн


Как это сделать можно?) Объясни пжлст буду очень благодарен.

Автор: DEN 007 30.3.2012, 20:20

Цитата(Pank1 @ 30.3.2012, 10:31) *
Как это сделать можно?) Объясни пжлст буду очень благодарен.

Нужно знать хотябы php и/или lua