Цитатник Рунета, API1, API2 | Показывает цитаты с bash.org.ru |
Здравствуйте, гость ( Вход | Регистрация )
Цитатник Рунета, API1, API2 | Показывает цитаты с bash.org.ru |
7.8.2008, 13:09
Сообщение
#81
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 3 Регистрация: 24.6.2008 Пользователь №: 78 Спасибо сказали: 9 раз |
Название скрипта: Bash.Org.Ru_Script
Версия скрипта: ? Версия API: API1 & API2 Автор: Nickolya Описание скрипта: Скрипт показывает цитаты с bash.org.ru. Скрипт под API 2 содержит модернизацию в виде возможности выбора по таймеру посылать цитаты, по команде или одновременно двумя способами из меню и если из меню то куда посылать в приват или мейн! Дополнительно: - Для API 1 качать это и размещать в папке хаба (где PtokaX.exe). pxwsa_l51.rar ( 6.75 килобайт ) Кол-во скачиваний: 266 Если не будет работать, тогда еще вот это: cc3270.rar ( 220.58 килобайт ) Кол-во скачиваний: 249 - Для API 2библиотеку PXLuaSocket качаем вот отсюда http://mydc.ru/topic43.html
Прикрепленные файлы
Bash.Org.Ru_Script_API_1.rar ( 73.39 килобайт )
Кол-во скачиваний: 292
Bash.Org.Ru_Script_API_2.rar ( 21.58 килобайт ) Кол-во скачиваний: 851 |
|
|
22.3.2009, 1:03
Сообщение
#82
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 4 Регистрация: 21.3.2009 Пользователь №: 2 694 Спасибо сказали: 0 раз |
Кароч сделал с помощью конвертера и все, спасибо за внимание
|
|
|
22.3.2009, 11:39
Сообщение
#83
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
А как можно сделать так, чтобы цитати брались не из инета, а с лок. сервера? Дело в том, что у нас в лок. сети есть сервер с цитатами рунета, и хотелось, чтобы цитаты брались от туда, как такое сделать?
Базы обновляются, но при вводе команды показать цитаты, пишет, что в базе нет данных, хотя с лок. сервера цитаты скачались Цитата [13:38:02] <bash.org.ru> *** Данные приняты в размере 60394 Кб за 3.5620000000017 секунд. [13:38:02] <bash.org.ru> *** Обновление базы закончено! Добавлено 0 цитат. Щас сохраним все данные... Показ цитат: Цитата [13:39:00] <bash.org.ru> В базе пока нет сообщений!!
|
|
|
22.3.2009, 11:39
Сообщение
#84
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
написать локальный адрес и проверить парсинг
|
|
|
22.3.2009, 11:50
Сообщение
#85
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Адрес лок. сервера:
Код http://10.2.33.38/rss/bash.org.ru.html Вот так выглядит страница цитаты: Код <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Bash.Org.Ru</title> <link href="/_inc/css/rss_reader_bash.css" rel="stylesheet" type="text/css" media="all"> </head> <body><div id="page"> <div class="header"> <img width="300" height="40" alt="bash.org.ru" src="/_inc/img/rss/bash/logo.gif">Bash.Org.Ru - Цитатник Рунета</div> <div id="quotes"> <div class="q"> <div class="vote"> <a href="http://bash.org.ru/quote/402898">Цитата #402898</a> , Sat, 21 Mar 2009 11:12:01 +0400</div> <div>Морские новости: "В Ильичевском порту тепловоз раздавил автомобиль ГАИ, приехавший красть солярку"<br>Вот оно как бывает - тепловоз подкрался незаметно.</div> </div> </div> </div></body> </html> Цитаты с лок. сервера сохраняются в xml файл, который в папке BashOrgRuPath/Bash.Org.Ru.xml Но просмотреть нельзя, пишет, база пуста :( Конф. файл: Код sBot = "bash.org.ru" -- имя бота (оставьте равным "" для имени бота с хаба) rHost = "vx.pvt.454.ru" -- доменное имя rFile = "/rss/" -- путь к нужному файлу iCanWait = 12 -- максимальное время ожидания в секндах (увеличить если все нормально и ошибка 'timeout') iMaxLength = 100 -- макс. длинна строки для оформлеиня цитат sPath = "BashOrgRuPath/" -- папка скрипта sMainDataTbl = sPath.."tAllData.tbl" -- таблица с цитатами sDownloadedData = sPath.."Bash.Org.Ru.xml" -- файл из инета sNewNumbers = sPath.."tNewNumbers.tbl" -- новые цитаты sCoreFile = sPath.."Core.lua" -- файл с функциями Файл Core.lua(немного подправил, т.к. не скачивало страницу: Код function SendRequest()
local iStart = os.clock() local sIncomingBuffer, iErrorCode, tData = http.request("http://"..rHost.."/"..rFile.."/bash.org.ru.html?#41; if iErrorCode == 200 then Core.SendToOps("<"..sBot.."> *** Данные приняты в размере "..(tData["content-length"] or 0).." Кб за "..(os.clock() - iStart).." секунд.") SaveData(sDownloadedData, sIncomingBuffer) ParseData(sIncomingBuffer) else Core.SendToOps("<"..sBot.."> *** Ошибка при получении данных ("..iErrorCode..")!!!") end end |
|
|
22.3.2009, 12:01
Сообщение
#86
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
исправления файла Core.lua откати назад!
вот тут же написано Цитата rFile = "/rss/" -- путь к нужному файлу должно быть так Код rHost = "10.2.33.38" -- доменное имя rFile = "/rss/bash.org.ru.html?#34; -- путь к нужному файлу вместо ип конечно же можно доменное имя написать а можно и так оставить а не скачивается потому что ошибка! Код local sIncomingBuffer, iErrorCode, tData = http.request("http://"..rHost.."/"..rFile.."/bash.org.ru.html?#41; приглядись чего не хватает? |
|
|
22.3.2009, 12:06
Сообщение
#87
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Цитаты скачивает
Цитата [14:03:05] <bash.org.ru> *** Данные приняты в размере 60394 Кб за 1.4529999999977 секунд. [14:03:05] <bash.org.ru> *** Обновление базы закончено! Добавлено 0 цитат. Щас сохраним все данные... Но не показывает :( Цитата [14:04:10] <bash.org.ru> В базе пока нет сообщений!!!
|
|
|
22.3.2009, 12:09
Сообщение
#88
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
блин ну ты видишь что что данные получает а таблиицы не делает! значит парсинг не такой нужен!!! Просто скрипт не может сделать таблицу(вынуть нужные данные из всех которых получил)
|
|
|
22.3.2009, 12:20
Сообщение
#89
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
А как сделать, чтобы таблица получала данные?
|
|
|
22.3.2009, 12:55
Сообщение
#90
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
надо смотреть структуру нужные данные выделять а ненужные заменять
|
|
|
22.3.2009, 13:02
Сообщение
#91
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Если честно, я не знаю как заменять некоторые данные, например ссылку <a href="link"></a>. Как я понял, редактировать надо здесь:
CODE for sWhatNeedToGsub, sToWhat in pairs(tNeedToGsub) do sIncomingBuffer = sIncomingBuffer:g(sWhatNeedToGsub, sToWhat) end local sIncomingBuffer = sIncomingBuffer:g("<br>", "\r\n") local sNeedInfo = "" for sNeedInfo in sIncomingBuffer:gmatch("(<item>.-</item>)") do --local _,_, sGuid = sNeedInfo:find("(<item>.-<guid>.*</guid>)") --local sIncomingBuffer = sIncomingBuffer:g(sGuid, "") local _,_, sTitle = sNeedInfo:find("<title>(.*)</title>") local _,_, iNumber = sTitle:find("(%d+)") local iNumber = tonumber(iNumber) if not tAllData[iNumber] then local _,_, sPubDate = sNeedInfo:find("<pubDate>(.*)</pubDate>") local _,_, sDescription = sNeedInfo:find("<description>(.*)</description>") local _,_, sData = sDescription:find("<!%[CDATA%[(.*)%]%]") tAllData[iNumber] = {} tAllData[iNumber]["sPubDate"] = sPubDate tAllData[iNumber]["sData"] = sData iAdded = iAdded + 1 table.insert(tNewNumbers, iNumber) Но что и как тут заменить, я не знаю :( Структура страницы(пример одной цитаты): CODE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Bash.Org.Ru</title> <link href="/_inc/css/rss_reader_bash.css" rel="stylesheet" type="text/css" media="all"> </head> <body><div id="page"> <div class="header"> <img width="300" height="40" alt="bash.org.ru" src="/_inc/img/rss/bash/logo.gif">Bash.Org.Ru - Цитатник Рунета</div> <div id="quotes"> <div class="q"> <div class="vote"> <a href="http://bash.org.ru/quote/402898">Цитата #402898</a> , Sat, 21 Mar 2009 11:12:01 +0400</div> <div>Морские новости: "В Ильичевском порту тепловоз раздавил автомобиль ГАИ, приехавший красть солярку"<br>Вот оно как бывает - тепловоз подкрался незаметно.</div> </div> </div> </div></body> </html> |
|
|
22.3.2009, 13:10
Сообщение
#92
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
не я конечно понимаю что много хочется, но ты предлагаешь под каждого человека переписывать парсинг?
|
|
|
22.3.2009, 13:21
Сообщение
#93
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
|
|
|
22.3.2009, 13:38
Сообщение
#94
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 3 Регистрация: 21.3.2009 Пользователь №: 2 689 Спасибо сказали: 0 раз |
Wariner
Я чуть не так объяснил и ты не так понял, таблица создается на 100 цитат и если на баше новые добавляются то он вносит их в таблицу. Например база содержала 100 цитат с добавление на баше и внесением их в таблицу стало 109. У меня вопрос в другом ка сделать чтобы он сразу таблицу создал с 1000 цытат например или больше лазил в .lua и .tbl не нашол функции такой, может подскажеш где исправить это если можно? |
|
|
22.3.2009, 13:45
Сообщение
#95
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
не понятен смысл этого. ты хочешь чтоб при имеющихся 100 цитатах место резервировалось на 1000?
ну да ладно... Обойдусь без цитат... В конце концов вы(модеры) никому ничего не должны... ухахахаха. попробуй сделать сам!!! никто и никогда ничего на блюдечке с золотой каёмочкой приносить не будет! Посмотри структуру баша посмотри что делает скрипт а потом сделай для себя. Если будут вопросы обращайся.... |
|
|
22.3.2009, 15:01
Сообщение
#96
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Попытался, но не получилось:(
Код function ParseData(sIncomingBuffer)
local iAdded = 0 local tNeedToGsub = { ["\t"] = "", ["\r"] = "", ["\n"] = "", ["<"] = "<", [">"] = ">", ["""] = "\"", ["&"] = "&", ["−"] = "-", } for sWhatNeedToGsub, sToWhat in pairs(tNeedToGsub) do sIncomingBuffer = sIncomingBuffer:g(sWhatNeedToGsub, sToWhat) end local sIncomingBuffer = sIncomingBuffer:g("<br>", "\r\n") local sNeedInfo = "" for sNeedInfo in sIncomingBuffer:gmatch("(<div class="q">.-</div>)") do --local _,_, sGuid = sNeedInfo:find("(<item>.-<guid>.*</guid>)") --local sIncomingBuffer = sIncomingBuffer:g(sGuid, "") local _,_, sTitle = sNeedInfo:find("<a>(.*)</a>") local _,_, iNumber = sTitle:find("(%d+)") local iNumber = tonumber(iNumber) if not tAllData[iNumber] then local _,_, sDescription = sNeedInfo:find("<div>(.*)</div>") local _,_, sData = sDescription:find("<div>(.*)</div>") tAllData[iNumber] = {} tAllData[iNumber]["sData"] = sData iAdded = iAdded + 1 table.insert(tNewNumbers, iNumber) end end Core.SendToOps("<"..sBot.."> *** Обновление базы закончено! Добавлено "..iAdded.." цитат. Щас сохраним все данные...") if iAdded ~= 0 then iTimeToSend = iSecondsToSendNew SaveToFile(sMainDataTbl, tAllData, "tAllData") MakeTblForRandomChoose() end end |
|
|
22.3.2009, 15:28
Сообщение
#97
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Код function ParseData(sIncomingBuffer)
local iAdded = 0 local tNeedToGsub = { ["\t"] = "", ["\r"] = "", ["\n"] = "", ["<"] = "<", [">"] = ">", ["""] = "\"", ["&"] = "&", ["−"] = "-", } for sWhatNeedToGsub, sToWhat in pairs(tNeedToGsub) do sIncomingBuffer = sIncomingBuffer:g(sWhatNeedToGsub, sToWhat) end local sIncomingBuffer = sIncomingBuffer:g("<br>", "\r\n") local sNeedInfo = "" for sNeedInfo in sIncomingBuffer:gmatch("(<div class=\"q\">.-</div>)") do local _,_, sTitle = sNeedInfo:find("<a href=\"http://bash.org.ru/quote/%d+\">(.*)</a>") local _,_, iNumber = sTitle:find("(%d+)") local iNumber = tonumber(iNumber) if not tAllData[iNumber] then --local _,_, sDescription = sNeedInfo:find("<div>(.*)</div>") --local _,_, sData = sDescription:find("<div>(.*)</div>") local _,_, sData = sNeedInfo:find("<div>(.*)</div>") tAllData[iNumber] = {} tAllData[iNumber]["sData"] = sData iAdded = iAdded + 1 table.insert(tNewNumbers, iNumber) end end Core.SendToOps("<"..sBot.."> *** Обновление базы закончено! Добавлено "..iAdded.." цитат. Щас сохраним все данные...") if iAdded ~= 0 then iTimeToSend = iSecondsToSendNew SaveToFile(sMainDataTbl, tAllData, "tAllData") MakeTblForRandomChoose() end end |
|
|
22.3.2009, 15:44
Сообщение
#98
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Спасибо, цитаты получает, но команда +BASH_show
не работает :( |
|
|
22.3.2009, 15:50
Сообщение
#99
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ошибки?
|
|
|
22.3.2009, 15:59
Сообщение
#100
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Код scripts/BashOrgRuPath/Core.lua:82: attempt to concatenate local 'sData' (a nil value)
|
|
|
22.3.2009, 16:00
Сообщение
#101
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
82 строчку в студию плюс пример что сохранилось у тебя в таблице(небольшой кусок в пару цитат)
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
От: Цитатник Рунета От темы с ID: 263 |
5 | Setuper | 9 168 | 22.3.2009, 20:44 Посл. сообщение: Accelerator | |
От: Цитатник Рунета От темы с ID: 263 |
18 | Nickolya | 20 033 | 6.1.2009, 16:08 Посл. сообщение: Serhio | |
От: Цитатник Рунета От темы с ID: 263 |
10 | xprofi | 15 830 | 11.12.2008, 12:21 Посл. сообщение: artsi81 |
|
Сейчас: 23.12.2024, 14:03 |