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

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

MyDC.ru _ Скрипты для VerliHub _ Dalliance ; старое название "Anekdot+BashOrg"

Автор: Vizunchik 24.10.2011, 23:31


Название скрипта: dalliance ; старое "Anekdot+BashOrg"
Версия скрипта: 2.0
Автор: Vizunchik
Библиотека: для работы скрипта требуется библиотека LuaSocket
Описание: Скрипт выдаёт через меню случайные анекдоты и цитаты с башорга, а также автоматический выводит в чат по определённому времени.
Подправил:



Настройки скрипта:
Код
--Ниже находится то, что можно настраивать
local sBotName = ""                    -- Имя бота. Если "" то имя основного бота хаба.
local sMenu = "Меню хаба"            -- Название меню
local sMenuOn = false                -- Включить либо Выключить Меню ( false - Выключить / true - Включить)
local sMinClass = 0                    -- Минимальный класс пользователей, которым доступен меню
local sCmdAnekdot = "анекдот"        -- команда для вывода Анекдотов
local sCmdBashOrg = "башорг"        -- команда для вывода Цитат с BashOrg
local sCmdFacts = "факты"            -- команда для вывода Интересных Фактов
local sAnekdotMaxTimer = 60*5        -- Минимальный интервал запросов (в секундах)
local sBashOrgMaxTimer = 60*5        -- Минимальный интервал запросов (в секундах)
local sFactsMaxTimer = 60*5            -- Минимальный интервал запроса Интересных Фактов (в секундах)
local sAnekdotChatPM = true            -- Отправлять Анекдот в чат всем или в личку юзеру ( false - отправлять в приват / true - отправлять в чат)
local sAnekdotChatUser = false        -- Отправлять Анекдот в чат только юзеру или в чат всем ( false - отправлять в чат только юзеру / true - отправлять в чат всем)
local sBashOrgChatPM = true            -- Отправлять Цитат с BashOrg в чат или в личку ( false - отправлять в приват / true - отправлять в чат)
local sBashOrgChatUser = false        -- Отправлять Цитат с BashOrg в чат только юзеру или в чат всем( false - отправлять в чат только юзеру/ true - отправлять в чат всем)
local sFactsChatPM = true            -- Отправлять Интересных Фактов в чат или в личку ( false - отправлять в приват / true - отправлять в чат)
local sFactsChatUser = true            -- Отправлять Интересных Фактов в чат только юзеру или в чат всем( false - отправлять в чат только юзеру/ true - отправлять в чат всем)
local AutoAnekdot = false            -- Автоматический вывод Анекдотов ( false запретить / true разрешишь)
local AutoBashOrg = false            -- Автоматический вывод Цитат с BashOrg ( false запретить / true разрешишь)
local AutoFacts = true                -- Автоматический вывод Интересных Фактов ( false запретить / true разрешишь)
local sLocMan = "-"                    -- Символ-заполнитель верхней и нижней строк
local sManLoc = 75*4                -- Кол-во символов-заполнителей верхней и нижней строк. Нужно подобрать, если будет изменен символ-заполнитель.
local sTimeOut = 5                    -- Таймаут ожидания загрузки страницы (чтобы хаб не подвисал), в секундах
local sAutoTimeAnekdot = {            -- Время для автоматической отправки Анекдотов
                        "00:00:00","03:00:00","06:00:00","09:00:00","11:00:00","15:00:00","18:00:00","21:00:00",}            
local sAutoTimeBashOrg = {            -- Время для автоматической отправки Цитат с bash.org.ru
                        "01:30:00","04:30:00","07:30:00","10:30:00","12:30:00","16:30:00","19:30:00","22:30:00",}
local sAutoTimeFacts = {            -- Время для автоматической отправки Цитат с bash.org.ru
                        "01:00:00","02:30:00","05:30:00","9:30:00",}
--Выше находится то, что можно настраивать


 dalliance.lua ( 10.07 килобайт ) : 107
 

Автор: Vizunchik 9.11.2011, 8:18

обновил скрипт

Автор: Vizunchik 17.11.2011, 13:47

обновил скрипт до Версии: 1.4b

Автор: Vizunchik 20.12.2011, 17:58

Обновил до 2.0
Исправил вывод башорга
Добавил интересные факты

Автор: wolf night 20.3.2012, 15:40

Стали криво выводится Цытаты


[16:37:41] *<факзимол>#BashOrg по запросу
---------------------------------------------------------------------------
a: я кошмарно потолстела =(
Dart: да ладно тебе, не говори глупости
Dart: через год ты будешь вспоминать, какая сейчас была худенькая и смеяться над собой.
bela: !!!!!!!!!!
Dart: черт, наверное фиго
---------------------------------------------------------------------------


[16:37:55] *<факзимол>#BashOrg по запросу
---------------------------------------------------------------------------
ika: откуда в армии доступ в инэт? )
kicune: Откуда в армии ПК для обычных смертных?
Lentyi: Раз такие вопросы задаете, значит не служили)
Lentyi: Армия она как Yandex - Н
---------------------------------------------------------------------------

Автор: Vizunchik 20.3.2012, 19:22

исправил

Автор: wolf night 20.3.2012, 20:35

Цитата(Vizunchik @ 20.3.2012, 20:22) *
исправил



Спасибо , все работает

Автор: whuru 17.6.2012, 20:45

У меня почему-то ничего не появляется, хотя запускается скрипт без ошибок, но его нигде не видно и не слышно. Различные варианты настроек пробовал - ничего. Luasocket присутствует, PtokaX v.0.4.1.2

Автор: Vizunchik 17.6.2012, 21:02

попробуй в чат ввести следующие команды
+анекдот
+башорг
+факты

не заметил ЭТОТ скрипт для Verlihub а не для PtokaX

Автор: wolf night 24.7.2012, 15:34

Пора обновлять скрипт , bash.org что то изменил на сайте , анекдоты и факты выводятся нормально а цитаты стали показывать вот так :

Код
[16:29:34] <факзимол>Автоматический вывод Цитат с BashOrg
---------------------------------------------------------------------------
R[REQUEST_URI];

    if (!(strpos($request_uri, "?") === false)) {
        list($uri, $req) = explode("?", $request_uri, 2);
    }

    $lock = $ea_cache->get(qfw-lock);
    
    if (strval($lock) == )  {
        $ea_cache->set(qfw-lock, lokked, 10);
        $db = new ezSQL_mysql(megrez, MbOUaq8xHBV8YJK6, altair, localhost);
        $db->query("SET NAMES CP1251");

        $res = $db->get_results("select approved_id id, rating, text, status_changed_at approved_at from quotes where status_id = 7 order by rand() limit 1;", ARRAY_A);
        $res = $res[0];

        $quote  = <div id="b_q"><a href="http://bash.im/quote/.$res[id].">#.$res[id].</a>;
        $quote .= <span id="b_q_h">[ .$res[rating]. ]</span>;
        $quote .= <div id="b_q_t" style="padding: 1em 0;">.$res[text].</div>;
        $quote .= <small><a href="http://bash.im/" target="_blank" title="bash.im откроется в новом окне">Больше на bash.im!</a></small>;
        $quote .= </div>;
        $quote = preg_replace(/</, " ", $quote);

        $ea_cache->set(qfw, $quote, 0);
    }
    
    $quote = $ea_cache->get(qfw);

    if (isset($req)) {
        switch ($req) {
            case "u":
                $quote = iconv("cp1251", "UTF8", $quote);
                header("Content-Type: text/html; charset=utf-8");
                break;
            case "k":
                $quote =
---------------------------------------------------------------------------

Автор: KCAHDEP 24.7.2012, 21:42

у меня норм выводит, правда на птоке...

Автор: Артём 25.7.2012, 10:52

KCAHDEP, ну и чего тогда здесь написал? Эта тема верли, а не птоки

Автор: KCAHDEP 25.7.2012, 22:15

Цитата(Артём @ 25.7.2012, 11:52) *
KCAHDEP, ну и чего тогда здесь написал? Эта тема верли, а не птоки

парсинг страницы то адын.

Автор: wolf night 28.8.2012, 14:14

Цитата(wolf night @ 24.7.2012, 16:34) *
Пора обновлять скрипт , bash.org что то изменил на сайте , анекдоты и факты выводятся нормально а цитаты стали показывать вот так :

Код
[16:29:34] <факзимол>Автоматический вывод Цитат с BashOrg
---------------------------------------------------------------------------
R[REQUEST_URI];

    if (!(strpos($request_uri, "?") === false)) {
        list($uri, $req) = explode("?", $request_uri, 2);
    }

    $lock = $ea_cache->get(qfw-lock);
    
    if (strval($lock) == )  {
        $ea_cache->set(qfw-lock, lokked, 10);
        $db = new ezSQL_mysql(megrez, MbOUaq8xHBV8YJK6, altair, localhost);
        $db->query("SET NAMES CP1251");

        $res = $db->get_results("select approved_id id, rating, text, status_changed_at approved_at from quotes where status_id = 7 order by rand() limit 1;", ARRAY_A);
        $res = $res[0];

        $quote  = <div id="b_q"><a href="http://bash.im/quote/.$res[id].">#.$res[id].</a>;
        $quote .= <span id="b_q_h">[ .$res[rating]. ]</span>;
        $quote .= <div id="b_q_t" style="padding: 1em 0;">.$res[text].</div>;
        $quote .= <small><a href="http://bash.im/" target="_blank" title="bash.im откроется в новом окне">Больше на bash.im!</a></small>;
        $quote .= </div>;
        $quote = preg_replace(/</, " ", $quote);

        $ea_cache->set(qfw, $quote, 0);
    }
    
    $quote = $ea_cache->get(qfw);

    if (isset($req)) {
        switch ($req) {
            case "u":
                $quote = iconv("cp1251", "UTF8", $quote);
                header("Content-Type: text/html; charset=utf-8");
                break;
            case "k":
                $quote =
---------------------------------------------------------------------------





сейчас нормально работает скрипт а вот на момент написания сообщения скрипт выводил около недели то что написанно выше , потом все стало нормально

Автор: trup 18.2.2013, 17:48

заметил проблему.
скрипт иногда не выводит в чат вообще ничего, нет даже сообщения "К сожалению, на данный момент бла-бла-бла не доступно.".
проблема возникает в разное время и с разными сервисами. например в 3 ночи не вывело анекдот, а в 11 утра не вывело интересный факт.
расписание вывода инфы такое

Код
local sAutoTimeAnekdot = {            -- Время для автоматической отправки Анекдотов
                                     "00:00:00","03:00:00","06:00:00","09:00:00","12:00:00","15:00:00","18:00:00","21:00:00",}            
             local sAutoTimeBashOrg = {            -- Время для автоматической отправки Цитат с bash.org.ru
                                     "01:00:00","04:00:00","07:00:00","10:00:00","13:00:00","16:00:00","19:00:00","22:00:00",}
             local sAutoTimeFacts = {            -- Время для автоматической отправки Цитат с bash.org.ru
                                     "02:00:00","05:00:00","08:00:00","11:00:00","14:00:00","17:00:00","20:00:00","23:00:00",}

думал что вывод сообщения о недоступности веб сервиса вообще поломался. поэтому в целях эксперимента, пробовали закрыть на файре http://mydc.ru/r/?http://webdiscover.ru/ , скрипт в нужное время выругался о недоступности сервиса...

версия верли 1.0.0 от Fri Mar 30 2012

есть идеи?

Автор: Vizunchik 18.2.2013, 22:12

Код
local AutoAnekdot = false            -- Автоматический вывод Анекдотов ( false запретить / true разрешишь)
local AutoBashOrg = false            -- Автоматический вывод Цитат с BashOrg ( false запретить / true разрешишь)
local AutoFacts = true                -- Автоматический вывод Интересных Фактов ( false запретить / true разрешишь)

везде true ?

Автор: trup 18.2.2013, 22:15

ну естественно.
баг плавающий, он не зависит от конкретного веб сервиса и от конкретного времени.
баг словил как минимум 2 раза за сутки (вывод инфы каждый час, итого 24 раза за сутки).

Автор: trup 10.5.2013, 18:04

в последней строке последнего анекдота, появилась строка "var anekdot_i = Math.rou"
как бы исправить?

Автор: wolf night 13.6.2013, 20:01

Цитата(trup @ 10.5.2013, 19:04) *
в последней строке последнего анекдота, появилась строка "var anekdot_i = Math.rou"
как бы исправить?



Тоже замечаю в каждом выводе анекдотов этой фразы

Автор: Ksan 14.6.2013, 9:10

trup, wolf night, попробуйте после 197-й строки скрипта (из сообщения #1 этой темы) добавить эту строку (новую):

Код
MgsBashOrg=string.gsub(MgsBashOrg,"var anekdot_i = Math.rou","")