Здравствуйте, гость ( Вход | Регистрация )
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 30.8.2011, 3:24 |
Tiny Hublist Программа для создания хаблистов |
Ksan Адрес хаба можно? |
Milena | ||
| 16.6.2011, 0:45 |
Создание динамических страниц с помощью Lua Пишем сайты на Lua |
Saymon21 Даже не буду ходить по ссылке. После ковыряния в коде некоторых библиотек от Kepler Project, у меня появились серьезные сомнения отностиельно вменяемости его авторов. |
Milena | ||
| 16.5.2011, 23:33 |
Создание динамических страниц с помощью Lua Пишем сайты на Lua |
Давно хотел продолжить эту тему, но все никак руки не доходили. Итак, низкоуровневые функции: [attachment=5831:web.lua] Описание Таблицы: _SERVER - Окружение, полученное от web-сервера _HEADERS - Заголовки HTTP. По умолчанию в таблице содержится один заголовок: content-type: text/html. Все заголовки должны быть установлены до отправки каких-либо данных web-серверу. На момент первой отправки данных в таблице должен содержаться как минимум один заголовок, в противном случае web-сервер сообщит о внутренней ошибке. _GET - Переменные, полученные при помощи метода GET. _POST - Переменные, полученные при помощи метода POST. _REQUEST - Переменные, полученные при помощи методов GET и POST. _COOKIE - Куки, сохраненные на стороне клиента. _SET_COOKIE - Куки, которые необходимо сохранить на стороне клиента. Каждое значение должно быть таблицей, содержащей собственно значение куки и время истечения в формате unix-epoch. Если время истечения не указано, куки сохраняется до конца сессии. Для удаления куки, установите его заведомо просроченным. В таблицах _HEADERS,_GET,_POST,_REQUEST и _COOKIE все индексы хранятся в нижнем регистре. Таблицы _SERVER,_GET,_POST,_REQUEST и _COOKIE заполняются данными лишь при необходимости, поэтому к ним нельзя применять функции pairs и next. Функции: echo(...) - Функция, использующаяся для отправки данных клиенту. При первой отправке данных помимо самих данных отправляются заголовки, после чего добавление или изменение заголовков становится невозможным, а данная функция становится ссылкой на функцию io.write print(...) - Функция, использующаяся для отображения произвольных значений. Результат помещается в теги <pre><code></code></pre>. Данную функцию необходимо использовать только в целях отладки. tprint(tTable[, sTableName]) - Функция отображает содержимое таблицы tTable. Данную функцию необходимо использовать только в целях отладки. Переменные: _HEADERS_SENT - Переменная, определяющая, были ли отправлены заголовки. Менять значение этой переменной вручную не рекомендуется. Пример использования Код #!C:\Program Files\lua\lua.exe dofile("web.lua") if not _REQUEST.mode or _REQUEST.mode == "main" then echo("Hello world!!!") elseif _REQUEST.mode == "ip" then echo("Ваш IP: ",_SERVER.REMOTE_ADDR or "?") elseif _REQUEST.mode == "useragent" then echo("Ваш User-Agent: ",_SERVER.HTTP_USER_AGENT or "?") else echo("<center><h2>Кулхацкер, да?</h2><br>А ну-ка иди отседова по добру по здорову. Не то глазки красненькие повыковыриваю, да ручки шаловливые пообломаю.</center>") end |
Milena, Saymon21 | ||
| 21.4.2011, 18:47 |
Tiny Hublist Программа для создания хаблистов |
Ksan При отладке хаблиста я пинговал хабы из списка еще чаще. Если бы твой хаб был в списке во время отладки, я бы тоже оказался засранцем, идиотом, дебилом? |
Milena | ||
| 21.4.2011, 15:20 |
Tiny Hublist Программа для создания хаблистов |
Ksan Если тебя так напрягают сообщения о пингах, то почему бы просто не отключить их? Или, как вариант, вынести в личку бота. |
Milena | ||
| 18.4.2011, 21:15 |
Tiny Hublist Программа для создания хаблистов |
Цитата А как сделать что-бы хабы сами добавлялись? Или как сделать статистику типо этой? Хабов в списке: 161. Из них онлайн: 150, полностью проверено: 147. Пользователи оставили комментариев: 36. да,да... И кстати, если бы я выложил движок хаблиста BCETI, вы бы с ним все равно не справились, поскольку вы и с этим, простейшим хаблистом справляетесь с трудом. Sinsei А что мешает засунуть эту фигню в блок, и явно указать, по какой стороне выравнивать его содержимое? Код <div style="text-align: left"> <!-- Тут какая-то фигня --> </div> PS. Код '<ul><li>Всего хабов: '..hubs_count..'</li>'.. О боже '<li>Онлайн хабов: '..online_hubs_count..'</li>'.. '<li>Общее число юзеров на хабах сети: '..total_users_count..'</li>'.. '<li>Общий размер шары: '..FormatSize(tonumber(total_share_size),true)..'</li>'.. '<li>В среднем на каждом хабе '..math.floor(total_users_count/online_hubs_count)..' юзеров и '..FormatSize(tonumber(total_share_size/online_hubs_count),true)..' шары</li>'.. '<li>Обновление информации происходит один раз в час.</li>'.. '</ul> |
Milena | ||
| 17.4.2011, 3:07 |
Tiny Hublist Программа для создания хаблистов |
Доступна версия 1.01 Изменения: Исправлено отображение символов $ и | в строках, полученных от хаба. Добавлена переменная path, которая позволит упростить запуск скрипта в тех случаях, когда интерпретатору не удалось определить рабочую директорию. Добавлена возможность установки ника, пароля и шары для каждого хаба. Весь HTML-код вынесен в шаблон. Добавлена возможность изменения сортировки списка хабов. Добавлена возможность быстрой смены шаблона. Добавлен альтернативный шаблон страницы. Добавлено автоматическое определение страны хаба по IP-адресу. Добавлена возможность создания хаблиста в формате XML. Добавлена возможность отправки списка хабов на удаленный FTP-сервер. а можно добавить строку в хаблист типо - локалка , локалка +нэт Можно в версии 1.01. Для этого меняем 125 строку:Код table.insert(hubs,{Addr = hub[1],Info = Ping(pingaddr,port,hub[2],hub[3],hub[4]),Time = os.time(),Country = tDNS[addr] and tGeoIP[tDNS[addr]] or "??",UserString = hub[5]}) Теперь добавляем где-то после 204 строки: Код :gsub("{USERSTRING}",v.UserString or "") Теперь можно использовать переменную {USERSTRING} внутри строки хаблиста. При этом настройки хаба должны выглядеть так: Код {"dc.example.com:411", [5] = "Какая-то строка"}, |
KauH™, Ksan, Артём, Milena, dj hoodo, Saymon21, Damaks, Underconstruction | ||
| 13.4.2011, 16:39 |
Tiny Hublist Программа для создания хаблистов |
Saymon21 Потому что большинству юзеров (в том числе мне) непонятно, зачем переходить со старого доброго NMDC на нечто невразумительное. Какие в нем преимущества? Чем оно лучше? |
Milena | ||
| 13.4.2011, 15:10 |
Tiny Hublist Программа для создания хаблистов |
Saymon21 Я об этом думал. Но есть одна проблема - насколько мне известно, ADC использует кодировку UTF8. А это значит что прежде чем добавлять его поддержку, необходимо переходировать все шаблоны страниц и базы данных. Для данного хаблиста это вполне возможно - тут нет БД, а шаблон всего один. А вот BCETI... Даже страшно подумать об этом. Тем более протокол ADC по сути мертворожденный. Даже не знаю, стоит ли браться за это. Цитата Теперь совет, который вам может пригодиться (не связан с моей вышеобозначенной проблемой) - ник бота - tiny - может быть занят или зареген на хабах, и в этих хабах пинг не прокатит, поэтому лучше изменить название бота-пингера для входа на что-то другое, менее распространённое. Я сменил на tinylist Ник нужно менять в любом случае, причем на что-нибудь оригинальное, и совпадающее с названием сайта. Хотя бы потому, что дефолтный ник со временем будет забанен на большинстве хабов благодаря |
Milena | ||
| 13.4.2011, 13:41 |
Tiny Hublist Программа для создания хаблистов |
Цитата У меня вопрос: программа может создавать html-файл на ftp-сервере? Текущая версия - нет. Но могу добавить в следующей.Ksan Тут используется модифицированная библиотека сокетов. Под какой сборкой Lua ты ее запускаешь? PS. В архиве есть исходник. Если желаешь, можешь попробовать пересобрать библиотеку самостоятельно. |
Milena | ||
| 13.4.2011, 8:02 |
Tiny Hublist Программа для создания хаблистов |
Tiny Hublist Версия: 1.01 Платформа: Win32 Автор: alex82 Описание: Для демонстрации работы этого пингера, я решил написать небольшую программу для создания хаблиста. Программа работает следующим образом: хабы из списка проверяются на работоспособность, после чего результат сохраняется в HTML-файл. Соответственно, для создания хаблиста требуется только сама программа, и любой Web-сервер. Скриншоты ![]() ![]() [attachment=5945:tinyhublist_1.02.rar] Старые версии: [attachment=5755:tinyhublist_1.01.zip][attachment=5746:tinyhublist_1.00.zip] |
Nickolya, ustas, KauH™, Ksan, Артём, Accelerator, KT315, Alexey, ЕгО_ТенЬ, darkangel17, Kingston, Milena, CrazyKiller, baltica, Hammer, dj hoodo, Saymon21, JumpEXZ, RAND(i)M, DEN 007, @_JuNiOr_@, Sinsei, Damaks, Гарик БатьковиЪ, STIVAN, Osimus, Underconstruction, Mustik, AltSide | ||
| 11.4.2011, 19:12 |
Пингер NMDC-хабов Ударим опенсорсом по нездоровой шняге |
Эта "уязвимость" исправляется при помощи двух строк кода, и это может сделать сам юзер, если чувствует в себе зачатки паранойи. |
Milena | ||
| 8.4.2011, 21:22 |
Пингер NMDC-хабов Ударим опенсорсом по нездоровой шняге |
Stribog Теоретически возможно всё. Даже падение метеорита на башку в ясный летний день. Вы на практике это проделайте, а потом пишите об уязвимости. И кстати. Если Lua-скрипты работают на многих хабах, и хакнуть Lua так просто, то почему до сих пор ни один хаб не был взломан с использованием Вашего конгениального метода? Цитата ДА было бы тут что красть =) Ну да, это Вам не китайский код в 3-4 т строк, написанный хрен знает на чем, а файлик размером 365 строк, 85 из которых комментарии (но не смотря на это уверенно пингующий подавляющее большинство хабов). Его не украсть потому что его не продать, ибо лохи платят за количество. Да и не нужно его красть - он раздается бесплатно в первом посте темы. PS. Газификация лужи проходит как-то не совсем успешно. |
Taulalan, Ksan, Артём, Milena | ||
| 6.4.2011, 22:54 |
Пингер NMDC-хабов Ударим опенсорсом по нездоровой шняге |
Stribog А конкретнее? Где Вы там нашли слабые места БЕЗОПАСНОСТИ? Можете на номера строк указать? Или это всего лишь пук в лужу? |
Milena | ||
| 3.4.2011, 16:31 |
Хаблист BCETI.com |
У него клиническая смерть. Сегодня реанимируем. |
Milena | ||
| 3.4.2011, 8:03 |
RusHub and MySQL?! есть ли и как ... вопросы про mysql, md5 hash и т.д. |
Как можно понять из мануала по php, функция md5 имеет обе "реализации". Если вызвать ее так: Код md5($str, true) она вернет то же самое что и библиотека OpenSSL.Это же касается библиотеки md5 для Lua: Код md5.sum (message) Вернет бинарное представление md5 длиной 16 символов, а Код md5.sumhexa (message) вернет двоично-десятичное представление длиной 32 символа.Вывод: внимательно читаем мануалы. |
Kingston, Saymon21, DRUG_ADDICT | ||
| 1.4.2011, 23:45 |
Пингер NMDC-хабов Ударим опенсорсом по нездоровой шняге |
В последнее время появились нехорошие тенденции - рекламировать коммерческие проекты на некоммерческих ресурсах, выкладывать софт с закрытым кодом и встроенными шеллами, пытаться завлечь бесплатных Название: NMDC Hubs Pinger Версия: 1.00 Системные требования: Lua 5.1, LuaSocket Лицензия: GPL v3 Автор: alex82 Описание: Данный пингер не является самостоятельным программным продуктом, но может быть использован при написании хаблистов на Lua. Именно этот пингер (с небольшими изменениями) используется на при добавлении хаба. Использование Код Ping(sAddress, iPort[, sNick, sPassword, sShare/iShare]) sAddress - Адрес хаба. Обязательный параметр. Правильность адреса не проверяется - Вам необходимо сделать это самостоятельно перед вызовом функции. Возвращаемые значения: Функция возвращает таблицу, которая содержит следующие индексы: Пример использования: Код dofile("pinger.lua") local info = Ping("dc.myhub.pp.ua",411) print("Hub online:",info.Online and "yes" or "no") if info.Online then print("Hub name:",info.Name or "?") print("Hub description:",info.Descr or "?") print("Users:",info.Users or "?") print("Share:",info.Share and info.Share.." kb" or "?") print("Max users:",info.MaxUsers or "?") print("Min share:",info.MinShare or "?") print("Min slots:",info.MinSlots or "?") print("Max hubs:",info.MaxHubs or "?") print("Hub soft:",info.HubSoft or "?") else print("Error:",info.LastErr or "?") end [attachment=5719:pinger.lua] Пингеры на других языках |
Nickolya, ustas, Invisible, Ksan, KT315, Alexey, Kingston, Milena, Saymon21, RAND(i)M, DEN 007, Mustik, AltSide | ||
| 28.3.2011, 17:57 |
Хаблист BCETI.com |
Там была переустановка софта. Всю ночь А все баги движка, приводящие к ошибкам 500 я давно выловил. |
Milena | ||
| 28.3.2011, 1:58 |
Создание динамических страниц с помощью Lua Пишем сайты на Lua |
Цитата Apache/1.3.29 Server at localhost Port 80 Может дело не в руках вовсе? Бытует мнение что Apache 1 устарел. |
Milena | ||
| 23.3.2011, 11:47 |
Библиотека mtime Windows only | Время в миллисекундах |
...или Lua-AIO с wxLua. Или тот же Lua-AIO с созданием ветви и использованием ThreadWait() |
Milena | ||
| 22.3.2011, 11:19 |
Библиотека mtime Windows only | Время в миллисекундах |
Написал небольшую библиотеку, позволяющую получать время с момента запуска системы в миллисекундах. Библиотека может быть полезна для оценки производительности кода. [attachment=5686:mtime.rar][attachment=5687:mtime_src.rar] Пример использования: Код require"mtime" print( mtime.get() ) |
Nickolya, Invisible, PomanoB, Milena, Saymon21, AltSide | ||
| 17.3.2011, 10:55 |
Хаблист BCETI.com |
Milena | |||
| 17.3.2011, 4:28 |
Хаблист BCETI.com |
Измененения в работе хаблиста: *Исправлены ошибки пингера, из-за которых некоторые вполне работоспособные хабы не пинговались. Особо одаренный хаб Eximius теперь также пингуется нормально. *Теперь при добавлении хаба производится полный пинг, благодаря чему хаб появляется в списке сразу после добавления. Появление хаба в XML-списках и обновление статистики происходит как и раньше - с небольшой задержкой. *Добавлены рекорды посещаемости и размера шары. |
Milena | ||
| 16.3.2011, 0:49 |
Хаблист BCETI.com |
Кроме того, в пингере, проверяющем хаб при добавлении, есть небольшой косяк, из-за которого некоторые вполне нормальные хабы отваливаются с такой ошибкой. Основной пингер уже исправил, скоро доберусь и до этого. |
Milena | ||
| 15.3.2011, 11:54 |
Создание динамических страниц с помощью Lua Пишем сайты на Lua |
Setuper Веб-сервер (во всяком случае Апач) не будет этим заниматься. От тупо отправит те заголовки, что передал ему скрипт, добавив в них заголовок с информацией о себе. При полном отсутствии заголовков он выкинет ошибку 500 и запишет "Premature end of script headers" в лог ошибок. Так что переложить всю работу на него не получится Но можно автоматизировать этот процесс чтобы не возиться с составлением заголовков при написании каждой страницы. Как только решусь писать продолжение, напишу об этом. |
Milena | ||
| 15.3.2011, 5:11 |
Создание динамических страниц с помощью Lua Пишем сайты на Lua |
Бытует мнение, что для создания динамических сайтов на языке, отличном от php, необходимо убить уйму времени на написание соответствующего модуля для вебсервера, и извести метр нервов на сборку этого модуля с помощью кривого компилятора от фирмы "Майкрософт". Однако, это далеко не так - писать сайты можно на любом языке, для которого имеется консольный интерпретатор. Теоретически, можно написать сайт на Ассемблере, собрав полученную программу как консольное приложение. Законченные извращенцы могут попробовать сделать сайт на том мерзопакостном "языке программирования", что используется в командной строке Windows. Но сегодня мы не будем заниматься извращениями, и попробуем написать сайт на каком-нибудь более простом и понятном языке. А именно - на Lua. Для этого нам понадобятся:
Итак, начнем. Для начала откроем файл конфигурации Apache, и убедимся, что для директории, в которой будут лежать наши скрипты, разрешено управление конфигом при помощи файлов .htaccess: Код AllowOverride All Далее откроем эту директорию, создадим в ней файл .htaccess, и пропишем в нем 2 заклинания: Код Options +ExecCGI Эта директива разрешает выполнение CGI-скриптов в данной директории.Код AddHandler cgi-script .lua Эта директива сообщает Апачу о том, что файлы с расширением .lua являются CGI-скриптами.Теперь создадим в этой же директории файл test.lua, и пропишем в первой строке путь к интерпретатору Lua (здесь и далее предполагается, что интерпретатор установлен в директорию C:\Program Files\lua): Код #!C:\Program Files\lua\lua.exe Далее попробуем вывести в окно браузера какую-нибудь строчку. Для тех кто не в курсе поясню - общение между Апачем и CGI-приложением происходит через стандартные потоки. Для передачи данных Апачу используется stdout, а для получения тела сообщения CGI-приложением - stdin. Итак, пишем скрипт: Код io.write("Hello world!!!") Пытаемся открыть наш скрипт в браузере, и... получаем ошибку 500 Судорожно лезем в лог ошибок апача в надежде выяснить причину ошибки, и видим там следующее: Цитата [Sun Mar 15 02:35:07 2011] [error] [client 127.0.0.1] Premature end of script headers: test.lua Замечаем в сообщении знакомое слово "headers". Долго-долго думаем, что бы это могло означать... Нервничаем, кусаем бутерброд, запиваем его пивом... И тут нас осеняет: "Эврика, блеать, мы же не отправили заголовки!". Исправляем наш скрипт: Код io.write("content-type: text/html\n\nHello world!!!") Запускаем скрипт, и видим в окне браузера заветную строчку: Цитата Hello world!!! Ура!!! Оно работает!!! Бутерброды съедены не зря, и пиво выпито не напрасно. Продолжение следует... |
Nickolya, Setuper, Invisible, PomanoB, KT315, Alexey, Milena, Saymon21, RAND(i)M, DEN 007, AltSide | ||
| 14.3.2011, 22:12 |
Хаблист BCETI.com |
при добавлении хаба выдало ошибку: пустая страница с надписью: Исправилpages/add.lua:68: LuaSQL: Error executing query. MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's Hub','dreamshub.freeddns.com','87.249.195.56',411,'no comment',1300102794,'87.' at line 1 Цитата Не дано было сделать регу пользователя и позволить самому управлять настройками для своего хаба? Типа как ником пингера? У меня была мысля сделать это даже без регистрации - разрешать настройку параметров пингера если IP-адрес хаба совпадает с IP-адресом юзера, просматривающего страницу.Я реал задолбался наблюдать подобную херню. Обычный сборщик статы справится лучше, чем эти ваши пинги пингерами. Как дети малые, ей-богу, будто примеров мёртвых хаблистов мало. Цитата 3. Вопрос - в самом деле у большинства хабов, даже самых больших, ограничение по минимуму шары отсутствует, или это пингер пока не может определить? (а то только у 2 хабов стоит лимит) Если пингер не смог определить ограниченияя хаба, отображаются знаки вопроса, а надпись "неограничено" появляется только в том случае, когда параметр равен нулю. Однако надпись "неограничено" тоже мало о чем говорит, поскольку ограничения могут быть отключены в настройках хаба, и реализованы альтернативным способом - при помощи скрипта. |
Milena | ||
| 14.3.2011, 12:23 |
Хаблист BCETI.com |
Мы строили, строили и наконец построили. Ура! © Чебурашка Мой проект-долгострой, начатый еще во времена существования хаба Titan, и возобновившийся в рамках проекта BCETI.com, наконец вошел в стадию бета-тестирования, и стал доступен широкой публике. Попасть на хаблист можно по адресам или . Все пожелания, возмущения и негодования можно оставлять в этой теме, либо в теме хаблиста на форуме BCETI.com (которая будет создана чуть позже Часто задаваемые вопросы Как добавить свой хаб в хаблист? Очень просто - с помощью страницы. На момент добавления хаб должен быть онлайн, и корректно отвечать на команду $BotINFO Если мой хаб имеет несколько адресов, и я добавлю в хаблист их все, то будет ли мой хаб отображаться на нескольких страницах? В хаблист встроен весьма продвинутый алгоритм проверки адреса, и у Вас навряд-ли получится добавить несколько адресов для одного хаба даже в том случае, когда на хаб ссылаются несколько доменов, и он работает на нескольких портах. Но даже если у Вам удастся это сделать, при следующем пинге все страницы будут перенаправлены на тот адрес, который был добавлен первым. Как поступит хаблист в случае слияния моего хаба с другим? При слиянии нескольких хабов, их страницы перенаправляются на страницу того хаба, который был добавлен раньше, а в таблице с информацией о хабе появляется поле "Дополнительные адреса", в котором перечисляются адреса всех перенаправленных хабов. При этом, страницы перенаправленных хабов не удаляются, и если Вы решите забрать свой домен, и снова запустить отдельный хаб, он будет отображаться по старому адресу. Заметил что на страницах некоторых хабов отображаются их логотипы, а в ссылке на страницу хаба используется имя вместо ID. Можете сделать так же для моего хаба? Можем. Для этого Вам необходимо предоставить логотип в формате PNG (желательно на белом или прозрачном фоне) размером не более 400x100 пикселей. Файл логотипа можно прикрепить в этой теме, либо отправить мне в личку, указав при этом ID хаба, либо ссылку на страницу хаба. Данная функция не предоставляется для хабов, существующих менее одного месяца. Логотипы, содержащие ненормативную лексику или изображения порнографического характера, либо выполненные в стиле "Унылое говно", не принимаются. Может ли мой хаб оказаться в списке "Рекомендуем посетить"? Если Ваш хаб работает круглосуточно, и по вечерам на нем собирается не менее 1000 юзеров, мы можем добавить Ваш хаб в список рекомендуемых. Взамен Вы должны разместить в сообщении дня ссылку на хаблист: Цитата Хаблист BCETI.com - На каком языке написан хаблист? Оба компонента хаблиста (Web-интерфейс и пингер) написаны на Lua Я хочу себе такой же хаблист. Где можно скачать этот движок? На данный момент движок хаблиста существует в единственном экземпляре, и я не планирую выкладывать его в публичный доступ. |
Nickolya, Setuper, Invisible, Ksan, Accelerator, Milena, Saymon21, TiGRpp, RAND(i)M, ProGeTTo, AfLc | ||
| 7.3.2011, 19:39 |
CustomLocations + MySQL Определяем провайдера по IP-адресу |
Написал небольшой скрипт для импорта базы данных CustomLocations в бд MySQL: [attachment=5659:customlocations.lua]Перед использованием необходимо создать базу данных и вписать в скрипт путь к директории CustomLocations. Скрипт для тестирования: [attachment=5660:cl_test.lua] |
Nickolya, Invisible, PomanoB, Milena, Saymon21, DEN 007, AltSide, OCTAGRAM | ||
| 5.3.2011, 19:13 |
StarWars API1 | API2 |
sexynapku [attachment=5645:StarWars.rar] Артём Оно действительно не работало если имя бота равно имени главного бота. И виноваты в этом кривые руки. Твои. Посмотри внимательно на функцию OnStartup. |
sexynapku | ||
1 2 3 > »
|
Сейчас: 7.2.2012, 14:47 |