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 парсер но, если вдруг у вас нет веб сервера и вы не знаете как его поставить или еще какая то причина пользуйтесь моим Север 1: хост: www.s001-sml.tk/more Апи ключ: c1565e44c8ea942c01f9c391320c4e95
Север 2: хост: www.s006-sml.tk/more Апи ключ: 3a9e99c70d09a43cf20475734bf6cabe
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
Поставил, все работает, спасибо Две небольшие проблемы. 1. Некоторых юзеров (в том числе и меня) выбивает из хаба сразу после ответа бота. Что не так может быть на этих машинах? 2. На некоторые запросы (например, курица) приходит ответ
Цитата
<<Википендия> > Систематика на Викивидах
Заранее спасибо
Автор: 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/ проблема в том что результат поиска совсем не ток который мне нужен)
Помогите правильно привязать к данному скрипту зеркальный сайт википедии http://mydc.ru/r/?http://wiki.norcom.ru/wiki/ проблема в том что результат поиска совсем не ток который мне нужен)
нужно парсер писать для твоего этого зеркала... 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)
Как это сделать можно?) Объясни пжлст буду очень благодарен.