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

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

MyDC.ru _ Ваши проекты _ Public PHP hublist (Хаблист) by Enyby

Автор: Enyby 29.8.2011, 10:45

Public PHP hublist by Enyby


Версия: 0.03
Платформа: Any
Автор: Enyby

Описание:
Данный хаблист свободно распостраняем и изменяем в любых разумных пределах. Наличие ссылки на разработчика не обязательно, поддержки и дальнейшего развития хаблиста от разработчика не будет.
Админки нет, все изменения через базу данных. Есть экспорт в bat, xml и поддержка прямого импорта в DC клиенты. Есть простой сервер для авторегистрации хабов.
Пингует как пингер и как клиент.
Корректная работа со всеми хабами не гарантируется.

v0.03
http://mydc.ru/r/?ftp://inethub.olvi.net.ua/pub/Soft/Servers/DC++/HubList/Enyby_hublist_v0.03.rar
 Enyby_hublist_v0.03.rar ( 17.91 килобайт ) : 134

Демо: http://mydc.ru/r/?http://inethub.olvi.net.ua/hl_test/

Изменения:
+ добавлены всплывающие подсказки
* исправлена работа пингера в PHP < 5.3
* исправлен вывод меню


v0.01
http://mydc.ru/r/?ftp://inethub.olvi.net.ua/pub/Soft/Servers/DC++/HubList/Enyby-hublist.rar
 Enyby_hublist.rar ( 16.36 килобайт ) : 89


Процедура установки:
1. Распаковать архив в папку веб сервера.
2. Указать в config.php парметры для подключения к БД.
3. Импортировать в БД скрипт db.sql.
4. Поставить на крон запуск refresh.php.

По желанию можно поставить на крон dchub.php для импорта списка хабов на свой хаб. Этот скрипт будет обновлять hubs.lua, который можно подключать в скрипты хаба.
Также, можно настроить запуск server.php, тогда в хаблисте будет доступна авторегистрация хабов. Выглядит это так - в настройках хаба, указывается адрес вашего хаблиста и хаб сам сообщает хаблисту свое состояние через равные интервалы времени.

Если вас интересует встраивание хаблиста в ваш сайт, вам потребуется изменить код header.php, отключив вывод общего оформления страницы или же использовать iframe, встраивая страницу без изменений.

Предполагаемые проблемы и ограничения:
1. Если хаб не соответствует протоколу NMDC возможны проблемы с его пингованием.
2. Большинство нераспостраненных хабов (включая RusHub) могут иметь неправильное определение серверного софта.
3. Для работы с большим числом хабов, потребуется переписывать модуль пингования на работу с пулом подключений, так как, в данный момент, модуль открывает соединения ко всем хабам одновременно, что может повлечь проблемы, при достаточном большом числе хабов.
4. Часть функционала, навроде хинтов по наведению, доступно в коде, но не доступно на сайте, так как не подключены скрипты для вывода этих хинтов.
5. Возможны проблемы при работе с хабами на кириллических доменах.
6. Скрипт не тестировался на линуксе - возможно будут какие-то проблемы.

Посмотреть в реале, что из себя представляет хаблист можно по адресам:
http://mydc.ru/r/?http://inethub.olvi.net.ua/dc/ - может иметь функционал отсутствующей в данном релизе
http://mydc.ru/r/?http://32net.org/hublist/ - этот хаблист со своими дополнениями и улучшениями
http://mydc.ru/r/?http://triolan-hoodo.sytes.net/hubs/ - этот хаблист без улучшений и каких было редактирований.
http://mydc.ru/r/?http://hublist.godc.ru/ - этот хаблист со своими дополнениями и улучшениями
http://mydc.ru/r/?http://arena.triolan.com.ua/hublisti.html - этот хаблист со своими дополнениями и улучшениями

Автор: Enyby 29.8.2011, 22:54

Дополнения:
1. Есть проблемы с автодетекцией кодировки хаба. Если у вас не будет хабов с кодировкой utf-8, то вы можете заменить 5 строку файла refresh.php следующими двумя (только для версии 0.01):

function detect_encoding($string) {
return 'Windows-1251';

2. Хаблист работает постоянно в режиме клиента и только в начале каждого часа, в течение первых 5 минут, он работает как пингер.

3. Хаблист заточен под пингование 1 раз в 5 минут. Если вы используете другой интервал, то графики на странице хаба, могут иметь удручающий вид. Можете попробовать их заменить на флеш-компоненты, это должно обеспечить лучший вид.

Автор: Ksan 29.8.2011, 23:40

Цитата
3. Хаблист заточен под пингование 1 раз в 5 минут.

Не удивлюсь, если такой пингер быстро забанят.
И нахожу, что пункт 3 противоречит пункту 2:
Цитата
2. Хаблист работает постоянно в режиме клиента и только в начале каждого часа, в течение первых 5 минут, он работает как пингер.

Либо опишите человеческим языком, чтоб не было непоняток.

Автор: VOVKT 30.8.2011, 7:44

а зачем под 7 статических значений заводить целую таблицу(hl_status)?
чтоб запросы были посложнее?

Автор: Enyby 30.8.2011, 8:28

Цитата(Ksan @ 29.8.2011, 23:40) *
Не удивлюсь, если такой пингер быстро забанят.
И нахожу, что пункт 3 противоречит пункту 2:
Либо опишите человеческим языком, чтоб не было непоняток.

Не забанят. Один раз в час он работает как пингер, т. е. отсылает BotINFO и получает HubINFO. Все остальное время он входит как обычный клиент DC сети на хаб, получает список пользователей и имя хаба. На основании списка пользователей он определяет текущий онлайн и общую шару.

Цитата(VOVKT @ 30.8.2011, 7:44) *
а зачем под 7 статических значений заводить целую таблицу(hl_status)?
чтоб запросы были посложнее?

На начальном этапе этих значений было 3. В процессе эволюции хаблиста их стало семь. Так что это совсем не константы. К примеру, можно добвить статус "Хаб не соответствует протоколу NMDC" или "Устаревшее серверное ПО". Это первый аспект. Второй аспект связан с тем, что на эту таблицу стоит внешний ключ из другой таблицы, что обеспечивает целостность и непротиворечивость данных в БД.

Автор: VOVKT 30.8.2011, 8:42

А это видимо не константы?

Цитата(Enyby @ 30.8.2011, 9:28) *
"Хаб не соответствует протоколу NMDC" или "Устаревшее серверное ПО"

такая структура подходит для MS Access.
вот еслиб их было 1000 понять еще можно было понять а так это просто массив из 7ми элементов в какомнить файле err.lng

Автор: Enyby 30.8.2011, 8:45

Лично мне проще править БД, а не править файл констант + БД. Как по мне, так без разницы. МНе было удобнее сделать в БД.

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

Автор: VOVKT 30.8.2011, 8:52

Цитата(Enyby @ 30.8.2011, 9:45) *
если писать админку, то в моем случае статусы можно будет редактировать или переводить на другие языки рядовым пользователям, а в вашем случае только вебмастеру сайта.

http://mydc.ru/r/?http://php.net/manual/ru/
fopen...fwrite...fclose
сейчас несколько десятков добровольцев переводят документацию php так что чтобы отредактировать файл большого ума не надо

и кстати специально для простоты перевода кокраз и пишут .lng файлы

Автор: mariner 30.8.2011, 9:08

А еще есть православный gettext, но вы о нем не слышали :3

Цитата
Лично мне проще править БД

Сразу видно человека, который не в курсе про yaml

Автор: Enyby 30.8.2011, 9:22

Я очень за вас рад. Каждый пишет так, как ему удобнее.

А за gettext спасибо. Возьму на заметку. Видел его применение в коде phpBB, но тогда не разбирался что, да почему. Пока, что повезло и не довелось делать мультиязычность.

PS И да, тут столько желающих переписать "правильно" этот хаблист... Вам нужно код на github и совместными усилиями вы приведете его из мрачного Средневековья в светлое Будущее!

Автор: VOVKT 30.8.2011, 9:36

Цитата(Enyby @ 30.8.2011, 10:22) *
Каждый пишет так, как ему удобнее.

это лишь минус языка)
и кстати cms пишут по правилам)

Автор: Enyby 30.8.2011, 10:37

По поводу редактирования файлов:
Админ и вебмастер, обычно, разные люди. И админу спокойнее когда нельзя с сайта править исполняемые файлы. Конечно можно заводить файлы конфигураций или тот же YAML, но их можно читать на сайте, введя url к ним. Можно закрыть доступ к одной директории, но в случае nginx это нужно дергать админа, так как прав у вебмастера обычно нет. Ну и т. д. А с базой все проще.

Еще одна причина - целостность базы. Я могу подключится из С# к базе и организовать вывод. А если использовать сторонние файлы, то потребуется и их подключать, а это уже проблемы с доступом, если файлы находятся на другой машине (БД доступно по сети) и т. д.

Резюме:
Каждый выбирает технологии и те или иные типовые решения исходя из своего опыта и/или текущей ситуации.

Простой пример:
У меня на одном сервере нет root'а. Поэтому, чтобы управлять cron'ом, он реализован на php и работает через БД. И, если раньше, я бегал за админом, чтобы изменить конфиг cron'а, то теперь я сам себе хозяин.

Кстати. Мне вот тут пришла одна забавная идея. Код есть. Доступ открыт. Вот пусть VOVKT перепишет хаблист на lng файлы, а mariner на YAML. И каждый будет рад и счастлив. big_smile.gif

И вообще. Приглашаю всех желающих. Каждый исправляет то, что ему не нравится и получает хаблист своей мечты с блэк-джеком и шлюхами.

А по поводу себя - на тот момент я, конечно же, не знал ничего о YAML и lng. Но если бы я писал сейчас - написал бы точно так же. ;-)

PS Если есть какие-то конкрентые вопросы - обращайтесь. По поводу предложений, улучшений и со стебом - не по адресу.

Автор: VOVKT 30.8.2011, 13:15

я не стебался) и никак не хотел чтоб на это было похоже) просто увидел что у тебя стоит версия 0.01 а это или ты хочешь сам дорабатывать и т.п) или ктото будет дорабатывать) значит можно указывать на неточности и ошибки) типа:

Код
if(!isset($_GET['id'])) {
    not_found();
}
elseif(!(intval($_GET['id']) > 0)) {
    not_found();
}

ну и т.д

Автор: mariner 30.8.2011, 13:34

Цитата
mariner на YAML

Я лишь про инициализацию конфигов.

Автор: Enyby 30.8.2011, 15:11

laughing.gif "Мопед не мой, я только объяву повесил"

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

Код
if(!isset($_GET['id'])) {
    not_found();
}
elseif(!(intval($_GET['id']) > 0)) {
    not_found();
}

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

Автор: ke(x)one 1.9.2011, 22:11

у меня как то он не работает можете кинуть рабочий у кого есть?

Автор: Saymon21 1.9.2011, 22:39

Что значит не работает?

Автор: CrazyKiller 2.9.2011, 0:35

Цитата(ke(x)one @ 1.9.2011, 23:11) *
у меня как то он не работает можете кинуть рабочий у кого есть?


Подробнее, что не работает, Логи последние предоставьте, тут нет гадалок, их уволили ! big_smile.gif

Автор: ke(x)one 2.9.2011, 11:36

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\hublist\index.php on line 75

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\hublist\index.php on line 107


показывает что хаб добавлен а самого хаба не показывает ни одного

Автор: Enyby 2.9.2011, 11:41

Раскомментируйте 43 строку index.php и полученный текст запроса выполните в базу руками. Там будет ошибка. Напишите ее сюда.

Автор: ke(x)one 2.9.2011, 11:42

эт как? я особо так не мыслю по хаблистам

Автор: Enyby 2.9.2011, 11:45

Это убрать два слеша в начале 43 строке. Зайти снова на страницу хаблиста. В начале появится текст вида:
SELECT hub.id, hub.name, hub.description, hub.host, hub.port, state.users, state.share AS share, online, date.value AS date,
avg_users*rel AS avg_users, avg_share*rel AS avg_share, status.name AS status,
max_users, max_share, hint
FROM hl_hub AS hub LEFT JOIN hl_state AS state ON hub.id = state.id_hub AND hub.id_last_date = state.id_date
LEFT JOIN hl_date AS date ON hub.id_last_date = date.id
INNER JOIN hl_status AS status ON status.id = hub.id_status
LEFT JOIN (
SELECT id_hub, COUNT(users)/2016 AS rel
FROM hl_state AS state INNER JOIN hl_date AS date ON state.id_date = date.id
WHERE date.value BETWEEN NOW() - INTERVAL 1 WEEK AND NOW()
GROUP BY state.id_hub
) AS st ON st.id_hub = hub.id
WHERE block = 0
ORDER BY

Этот текст нужно скопировать и выполнить как запрос в phpMyAdmin. Там будет текст ошибки, который гнужно сюда скопировать.


Скорее всего вы что-то напутали с базой данных.

Автор: Гарик БатьковиЪ 2.11.2011, 19:14

у меня тупой вопрос, а под windows работает этот hublist?
в качестве cron я пробвал MoodleCron-Setup.exe

Автор: CrazyKiller 2.11.2011, 22:29

Цитата(Гарик БатьковиЪ @ 2.11.2011, 20:14) *
у меня тупой вопрос, а под windows работает этот hublist?
в качестве cron я пробвал MoodleCron-Setup.exe


Планировщик Заданий вас спасет big_smile.gif

Автор: Enyby 3.11.2011, 0:01

Цитата(Гарик БатьковиЪ @ 2.11.2011, 19:14) *
у меня тупой вопрос, а под windows работает этот hublist?

Работает под любой операционной системой с вебсервером, php и любым планировщиком.
Цитата(Гарик БатьковиЪ @ 2.11.2011, 19:14) *
в качестве cron я пробвал MoodleCron-Setup.exe

Как уже было сказано, можно использовать "планировщик задач". Хотя это не принципиально, хоть nnCron.

Сервер http://mydc.ru/r/?http://inethub.olvi.net.ua/dc/ работает на Windows и использует планировщик задач как замену Cron'а.

Автор: Гарик БатьковиЪ 3.11.2011, 1:51

может я что-то сделал не правильно, но у меня добовлять, добовляется в базу MySQL, но статискика хабов не собирается unhappy.gif
а если через любой браузер я открываю файл refresh.php , идёт постоянно ошибка
Notice: Undefined offset: 0 in D:\***\***\hublist\dc.php on line 179

Автор: Артём 3.11.2011, 8:30

Цитата(Гарик БатьковиЪ @ 3.11.2011, 1:51) *
может я что-то сделал не правильно...

ты прав, ты сделал лишней центровку текста!

Автор: Enyby 3.11.2011, 10:52

Цитата(Гарик БатьковиЪ @ 3.11.2011, 1:51) *
может я что-то сделал не правильно, но у меня добовлять, добовляется в базу MySQL, но статискика хабов не собирается unhappy.gif
а если через любой браузер я открываю файл refresh.php , идёт постоянно ошибка
Notice: Undefined offset: 0 in D:\***\***\hublist\dc.php on line 179
Содержимое таблицы с хабами в студию. У вас какие-то проблемы с функцией чтения сокетов хабов. Советую так же проверить наличие в php расширения для работы с сокетами.

Еще можете написать в 177 строчке файла dc.php вместо:
Код
function read(&$sockets, &$read, &$hubs, $debug = false) {
написать:
Код
function read(&$sockets, &$read, &$hubs, $debug = false) { var_dump($sockets, $read, $hubs, $debug);
А потом прислать сюда вывод с вызова refresh.php

Автор: Гарик БатьковиЪ 3.11.2011, 12:57

ну сначала я меня это была проблема, с сокетами в строке 54 потом я разшарил в php и стала другая, выше показанна...

заменил

Код
function read(&$sockets, &$read, &$hubs, $debug = false) {

на
Код
function read(&$sockets, &$read, &$hubs, $debug = false) { var_dump($sockets, $read, $hubs, $debug);



теперь при открытии refresh.php в браузере, хрень какая-то, ну вот сами взглянте http://mydc.ru/r/?http://32net.org/hublist/refresh.php

Автор: Enyby 3.11.2011, 20:38

Цитата(Гарик БатьковиЪ @ 3.11.2011, 12:57) *
теперь при открытии refresh.php в браузере, хрень какая-то, ну вот сами взглянте http://mydc.ru/r/?http://32net.org/hublist/refresh.php
Это не хрень. Это называется отладка. Можешь убирать изменения, я понял в чем проблема.

У тебя почему-то работа с ассоциативным массивом сокетов дает на выходе обычные перечисляемые массивы. Видно в этом PHP реализация такая. Можешь переставить на 5.3 или же в файле dc.php добавить одну строку в трех местах, отмеченных звездочкой
Код
<...>

function write(&$sockets, &$write, &$hubs, $debug = false){
    foreach($write as $key => $socket) {
*
        $hub = $hubs[$key];

<...>

function read(&$sockets, &$read, &$hubs, $debug = false) {
    foreach($read as $key => $socket) {
*
        $hub = $hubs[$key];

<...>

function error(&$sockets, &$error, &$hubs, $debug = false) {
    foreach($error as $key => $socket) {
*
        $hub = $hubs[$key];

<...>
строка вот эта:
Код
$key = array_search($socket, $sockets);
Должно решить все проблемы.

Какие люди "благодарные" пошли... Ну да ладно, это их проблемы.

С сервачком что-то там. То ли на графиках заткнулся, либо совпадение произошло, как я туда полез и графики посмотрел.

А так, товарищи мои сетевые, у кого баг подобный выше описанному, юзаем данный патчик (см. выше). Он таки рабочий, хотя изначально существовал в голове.
Со временем я начальный файлик в теме обновлю, чтобы на эти грабли поменьше наступали.

PS Нет. Таки дело в картинках. Стоит туда зайти, как сервер ложится.

Автор: Гарик БатьковиЪ 3.11.2011, 21:17

Enyby, спасибо большое! заработало!

Автор: Гарик БатьковиЪ 15.11.2011, 20:46

привет, Enyby у меня возникла новая проблема, при открытии статистики хаба вырубается апаче...

Автор: Enyby 15.11.2011, 20:49

Хе-хе. Она не возникла. Она и была. Я про нее писал уже:

Цитата
С сервачком что-то там. То ли на графиках заткнулся, либо совпадение произошло, как я туда полез и графики посмотрел.

Цитата
PS Нет. Таки дело в картинках. Стоит туда зайти, как сервер ложится.

Смотри логи, что там нарисовано.
Также поробуй Apache взять поновее или собери его не VC6, а VC9.

Автор: Гарик БатьковиЪ 15.11.2011, 21:44

Enyby, я заметил, что происходит только тогда, когда идёт более одного запроса

Автор: Enyby 15.11.2011, 21:46

Это как-то связано с генерацией картинкок. Может расширение GD не подключено? В любом случае, совет про обновление Апача по прежнему в силе.

Автор: Гарик БатьковиЪ 15.11.2011, 21:49

Enyby, ты сейчас про php_gd2.dll ?

Автор: Enyby 15.11.2011, 21:51

Именно. Я вообще у тебя ни одного графика не видел. Только я пытался их открыть, сразу сервер становился ежиком и уходил в туман.

Автор: Гарик БатьковиЪ 15.11.2011, 21:53

Enyby, было разшаренно.. а какие ещё библиотеки использует этот скрипт?

Автор: Enyby 15.11.2011, 21:59

Больше ничего не должен. Займись отладкой. После каждой строчки поочередно, начиная с последней, добавляй в конце:

Код
die('i am here');

Если сервер глохнет, то переставляй вставку на строчку выше и пробуй снова. Когда увидишь ответ "i am here", то ошибка будет в следующей строке скрипта.

Автор: Гарик БатьковиЪ 16.11.2011, 21:13

Enyby, привет. у меня стоял apache_2.0.59-win32-x86-no_ssl.msi я его заменил на apache_2.2.14-win32-x86-no_ssl.msi но по прежнему не работает.. what.gif http://mydc.ru/r/?http://32net.org/hublist/

Автор: Enyby 16.11.2011, 21:26

Делай это:

Цитата(Enyby @ 15.11.2011, 21:59) *
Займись отладкой. После каждой строчки поочередно, начиная с последней, добавляй в конце:
Код
die('i am here');

Если сервер глохнет, то переставляй вставку на строчку выше и пробуй снова. Когда увидишь ответ "i am here", то ошибка будет в следующей строке скрипта.

Я понимаю долго и не хочется, но я других путей не вижу.

Автор: Гарик БатьковиЪ 16.11.2011, 21:38

Enyby, прости за тупизм, а какой файл, hub.php, да? ))

Автор: Enyby 16.11.2011, 21:43

Вставку делать в файле day.php. Смотреть результат по адресу http://mydc.ru/r/?http://32net.org/hublist/day.php?type=users&time=week&id=2

Автор: Гарик БатьковиЪ 16.11.2011, 21:52

CODE
if(!isset($_GET['d'])) {

die('i am here');

header("Content-type: image/jpeg");
imagejpeg($canvas, null, 100);
}
else {
echo "<pre>\n";
print_r($GLOBALS);
}
imagedestroy($canvas);



появилось слово)) что дальше делать?

Автор: Enyby 16.11.2011, 22:11

Попробовать заменить

Код
imagejpeg($canvas, null, 100);
на
Код
imagejpeg($canvas);
А вставку убрать.

Автор: Гарик БатьковиЪ 16.11.2011, 22:16

Enyby, так же...

Автор: Enyby 16.11.2011, 22:21

Думаю что проблема в php. Поставь другую версию.

Автор: Гарик БатьковиЪ 16.11.2011, 23:47

Enyby, переставил php на 5.2.17, не помогло.. (((

может из-за библиотек всё таки?

у меня только вот эти разшарины

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_sockets.dll

Автор: Enyby 16.11.2011, 23:54

Кажется я нашел причину. Проблема в редакторе. которым ты правишь сайт. В частности его работой с юникодом. Когда ты вносил данные про БД, ты сохранил файл с BOM меткой, это три байта в начале файла. Вот сейчас я вижу три метки в коде главной страницы. Но если с html или текстом это работает, то с картинками это не работает.
Тебе нужно через нормальный редактор сохранить файлы без BOM метки. Я использую AkelPad. Можешь использовать его или какой-то другой, если он тебе известен.

Автор: Гарик БатьковиЪ 17.11.2011, 0:19

Enyby, перекодировал все файлы в UTF-8 (без BOM) но я всегда пользуюсь Notepad++. графики заработали, НО как и при первом запуске этого скрипта, вместо русских букв, еироглифы... он (браузер) пытается загрузить в ANSI

Автор: Enyby 17.11.2011, 0:27

В файле header.php замени

Код
function shutdown() {
    $content = ob_get_contents();
    ob_end_clean();
    $title = isset($GLOBALS['title']) ? $GLOBALS['title'].' - '.HUBLIST_TITLE : HUBLIST_TITLE;
на
Код
function shutdown() {
    $content = ob_get_contents();
    ob_end_clean();
    header('Content-Type: text/html; charset=UTF-8');
    $title = isset($GLOBALS['title']) ? $GLOBALS['title'].' - '.HUBLIST_TITLE : HUBLIST_TITLE;

Автор: Гарик БатьковиЪ 17.11.2011, 0:33

а я добавил

Код
<meta http-equiv="Content-Type" content="application/vnd.wap.xhtml+xml; charset=utf-8"/>

в
Код
<head>
    <title>'.$title.'</title>
    <link rel="stylesheet" href="./default.css" type="text/css" />
    <meta http-equiv="Content-Type" content="application/vnd.wap.xhtml+xml; charset=utf-8"/>
</head>



есть какая-нибудь разница в твоём варианте и в моём?

Автор: Enyby 17.11.2011, 0:36

Есть. Некотрые браузеры игнорируют meta тэг, а реагируют на заголовок. В любом случае - хуже не будет.

PS Не посмотрел что там стоит "application/vnd.wap.xhtml+xml". Что это? И зачем оно тут? Мало "text/html"?

Автор: Гарик БатьковиЪ 17.11.2011, 0:40

Цитата(Enyby @ 17.11.2011, 0:36) *
Есть. Некотрые браузеры игнорируют meta тэг, а реагируют на заголовок. В любом случае - хуже не будет.

PS Не посмотрел что там стоит "application/vnd.wap.xhtml+xml". Что это? И зачем оно тут? Мало "text/html"?



я не силён в программировании)) просто на каком-то сайте давно нашёл этот тег, вот и использую его для уточнения загрузки браузера в какой кодировке))

я ещё пытался понять твой файл default.css с кодом фона, не поможешь сделать что бы было на чёрном фоне с белым ширифтом? )) пож...

и ещё, в некоторых хаблистах (на других сайтах) в начале хаба стоит иконка, у твоего скрипта есть такая функция? big_smile.gif

Автор: Enyby 17.11.2011, 0:43

Если кратко - пиши всегда и везде "text/html" и в header и в meta.

Автор: Enyby 17.11.2011, 13:55

Цитата(Гарик БатьковиЪ @ 17.11.2011, 0:40) *
я ещё пытался понять твой файл default.css с кодом фона, не поможешь сделать что бы было на чёрном фоне с белым ширифтом? )) пож...
Можешь вообще его удалить и нарисовать css с нуля, какой захочешь.
Цитата(Гарик БатьковиЪ @ 17.11.2011, 0:40) *
и ещё, в некоторых хаблистах (на других сайтах) в начале хаба стоит иконка, у твоего скрипта есть такая функция? big_smile.gif
Нет.

Автор: Enyby 18.11.2011, 16:50

Неплохо, Гарик БатьковиЪ! Если хочешь, можешь и графики подправить. Это делается в day.php. Находишь там участок:

Код
$color = new stdClass();
$color->grid = imagecolorallocate($canvas, 0, 0, 0);
$color->background = imagecolorallocate($canvas, 255, 255, 255);
$color->down = imagecolorallocate($canvas, 255, 0, 0);
$color->up = imagecolorallocate($canvas, 0, 255, 0);
$color->base = imagecolorallocate($canvas, 127, 127, 0);
числа, это цвет. RGB в десятичном представлении. Хотя на деле, ты можешь, чтобы не мучится с перекодировкой, писать в шестнадцетирчном представлении. Это будет как-то так:
Код
$color = new stdClass();
$color->grid = imagecolorallocate($canvas, 0x00, 0x00, 0x00); // оси графика
$color->background = imagecolorallocate($canvas, 0xFF, 0xFF, 0xFF); // фон графика
$color->down = imagecolorallocate($canvas, 0xFF, 0x00, 0x00); // цвет падения значения
$color->up = imagecolorallocate($canvas, 0x00, 0xFF, 0x00); // цвет подъема значения
$color->base = imagecolorallocate($canvas, 0x7F, 0x7F, 0x00); // цвет базы значения


PS Чуть ниже находится переменная $font, отвечающая за размер шрифта. Можно и сней поиграться по вкусу.

Автор: Гарик БатьковиЪ 19.11.2011, 0:06

Enyby спасибо большое за помощь, добрый человек!

а ещё чуть не поможешь, если не трудно, вот в файле header.php ты сделал меню
, которое постоянно с верху, а дополнительную строчку с низу как сделать?

Автор: Enyby 19.11.2011, 2:26

header.php:

Код
function shutdown() { // функция, срабатывающая при завершении работы скрипта
    $content = ob_get_contents(); // получаем весь предыдущий вывод в переменную содержимого
    ob_end_clean(); // очищаем весь вывод
    $title = isset($GLOBALS['title']) ? $GLOBALS['title'].' - '.HUBLIST_TITLE : HUBLIST_TITLE; // устанавливаем титул страницы
    echo '
<html>
    <head>
        <title>'.$title.'</title>
        <link rel="stylesheet" href="./default.css" type="text/css" />
    </head>
    <body>
        <div id="menu">
            <ul>
                <li><a href="./">Хабы</a></li>
                <li><a href="./addhub.php">Добавить хаб</a></li>
                <li><a href="./Favorites.php">Favorites.xml</a></li>
                <li><a href="./bat.php">Hubs.bat</a></li>
                <li><a href="./about.php">О хаблисте</a></li>
            </ul>
        </div>
        <div id="main-box">
            <div id="left-column">
                Это левая колонка
            </div>
            <div id="right-column">
                Это правая колонка
            </div>
            <div id="content">
                '.$content.'
            </div>
        </div>
        <div id="footer">
            Это подвал сайта. Тут может быть что угодно.
        </div>
    </body>
</html>'; // пошел полный вывод страницы, тут может быть все что угодно и как угодно (шапка, подвал, боковые колонки или еще что)
}
Чтобы колонки были колонками, можно добавить такие стили:
Код
#left-column {
    float: left;
    width: 200px;
}
#right-column {
    float: right;
    width: 300px;
}
Если ничего не напутал - должно работать.

Автор: LAV © 20.11.2011, 18:35

Спасибо за хаблист. Фактически это первый заслуживающий внимания хаблист, из выложенных на сайте.
Наверное, имеет смысл обратить внимание пользователей, что хаблист без критических ошибок работает только на PHP 5.3.X, т.к. на предыдущих версиях возникает описанная в топике ошибка с сокетами, приводящая к зависанию.
Столкнулся с еще одной особенностью работы этого хаблиста.
Раз в час он обменивается с хабами командой $BotINFO, что вызывает именно на VerliHub (версия 0.9.8e-r2) сообщение в опчат:

Код
The following BOT has just entered the hub :DCPinger/2.0.3; Visit http://inethub.olvi.net.ua for more information. -- IP=' x.x.x.x ' Host='  ' User=' hublist '

На птоке все ок. Не нашел в настройках верлика где отключить эти сообщения. Есть какие-то мысли?

Автор: Enyby 20.11.2011, 19:03

Цитата(LAV © @ 20.11.2011, 18:35) *
Спасибо за хаблист. Фактически это первый заслуживающий внимания хаблист, из выложенных на сайте.

Не согласен. Tiny тоже неплох. По крайней мере со стороны. Как он там ставится и работает я не пробовал.
Цитата(LAV © @ 20.11.2011, 18:35) *
Наверное, имеет смысл обратить внимание пользователей, что хаблист без критических ошибок работает только на PHP 5.3.X, т.к. на предыдущих версиях возникает описанная в топике ошибка с сокетами, приводящая к зависанию.

В этом же топике доступно и исправление для php версии ниже 5.3. В дальнейшем оно будет добавлено в хаблист, а архив будет перезалит в тему.
Цитата(LAV © @ 20.11.2011, 18:35) *
Столкнулся с еще одной особенностью работы этого хаблиста.
Раз в час он обменивается с хабами командой $BotINFO, что вызывает именно на VerliHub (версия 0.9.8e-r2) сообщение в опчат:
Код
The following BOT has just entered the hub :DCPinger/2.0.3; Visit http://inethub.olvi.net.ua for more information. -- IP=' x.x.x.x ' Host='  ' User=' hublist '

На птоке все ок. Не нашел в настройках верлика где отключить эти сообщения. Есть какие-то мысли?

Мыслей нет. Немного поковырял исходники - вывод этого сообщения зависит от флага botinfo_report. Попробуйте поискать его в конфиге и поставить там 0, а не 1.

Автор: LAV © 20.11.2011, 20:21

Спасибо, сработало big_smile.gif Как-то пропустил мимо глаз этот параметр.

На PHP 5.2.14 попробовал внести указанные изменения, заработало, но были периодические сообщения об ошибках, поэтому сменил на 5.3.8.
Конечно, для некоторых может быть необходима работа именно на версии 5.2 из-за особенностей крутящихся на хостинге движков других сайтов.

Автор: Enyby 20.11.2011, 21:05

Цитата(LAV © @ 20.11.2011, 20:21) *
Спасибо, сработало big_smile.gif Как-то пропустил мимо глаз этот параметр.
Спасибо тут не пишут в постах. Есть специальная кнопка внизу каждого поста. Если какой-то пост вам помог - нажимаете кнопку.
Цитата(LAV © @ 20.11.2011, 20:21) *
На PHP 5.2.14 попробовал внести указанные изменения, заработало, но были периодические сообщения об ошибках, поэтому сменил на 5.3.8.
Неплохо бы эти ошибки озвучить. тогда и исправить что-то можно.

Автор: Enyby 23.11.2011, 11:27

В работе этого хаблиста существует ограничение - не более 256 хабов. Когда их количество станет больше этого числа, пингование перестанет работать. Это связано с реализацией функции php socket_select (под Windows точно работать не будет, а вот под Unix - нужно тестировать). Чтобы обойти это ограничение вам потребуется переписать код пингера на использование пула сокетов. В пуле должно быть не более 256 сокетов одновременно.

Автор: Enyby 14.12.2011, 18:55

Добавил в шапке версию 0.03 и ссылки на демо.

Автор: dj hoodo 20.12.2011, 19:03

Ковырял я, ковырял... и не наковырял big_smile.gif
в каком файле поменять унылые надписи "онлайн\оффлайн" на более веселые картинки...
ну и провайдера добавлять хотябы в ручную

Автор: Enyby 21.12.2011, 9:00

index.php

Цитата
<td class="status status-<?php echo htmlspecialchars($row['online'] == 1 ? "0" : '4'); ?>">
<span<?php echo ($row['online'] != 1 and $row['date'] != '') ?
' tooltip="Последний раз онлайн: '.htmlspecialchars($row['date']).'"' : '';
?>><?php echo htmlspecialchars($row['status']); ?></span>
</td>

Часть выделенным жирным можно заменить на вывод картинки, например, так:
Код
<img src="status/<?php echo urlencode($row['status']); ?>.png" />

Дальше создать папку status с картинками, названными согласно статусам в БД. Желательно в таблице статусов изменить все наименования на анголоязыные: "Статус" => "status" и т. д.

По поводу провайдера - еще одно поле в базу данных, а потом добавить вывод на страницу.

Подумываю переписать на использование шаблона.

Автор: dj hoodo 21.12.2011, 16:06

Вот тут отдельное спасибо нарисовалось.
А что это на Вашем сайте, какойто DB HUB в трехкратном размере кривовато опредиляется? или его просто криво добавили\настроили? или это один и тотже хаб вообще?

Автор: Enyby 21.12.2011, 16:09

Это три различных хаба. На них можно войти на все три одновременно с одним ником и коллизий не будет. Кто-то дорвался до готовой сборки видимо.

Автор: Mellon 27.12.2011, 8:45

to Enyby, недоценил тебя извеняюсь все не было времени, вот все же решил повторно поставить твой скрипт http://mydc.ru/r/?http://xdn.msk.ru/dcs/ веб часть отстой а все что касаемо пингера хорошо, не очень понравился вид написания запроса в бд а в работе отлично определяет стат хаба редиект, забанен и.т.п.. Сейчас проверю твой пингер на такие изьяны, есть такие хабцы - делаю подключение
*** Подключение к x.x.x.x...
*** Подключен
далее хаб встает в самом клиенте не открывая список юзеров и вообще просто стоит, на этом пингер обычно тоже встает вообщем пока интересно что твой пингер покажет и встанет ли он...


И есть ещё такой нюанс написания таблицы
1. Нельзя в конфиге указать переферикс, это и странно даже в моем скрипте можно
2. Зачем под несколько колонок заводить столько таблиц hl_status и hl_hub не порядок, сразу же создал hublist_hubs и планирую сделать одну единую таблицу для всех значений...
3. Стоп вот и накрылся твой хаблист, добавил я вот такой вот хабец dchub://10.225.208.208 и если как ты говоришь что после пинга хабов не поддерживающих пинг мой хаблист встает и не пингует остальные хабы, то он хотя бы пингует те хабы которые до него да и после а вот твой сейчас показывает везде "оффлайн" значит после добавления хаба не поддерживающего пинг твой хаблист сразу раком встал а мой хоть как то работает и стоило столько времени пихать не рабочие хабы в мой скрипт. Я же этим не занимался ? вот все таки занялся в добавок у тебя при добавлении хаба фильтрация у меня тоже она есть но она просто отключена и что ты хотел мне доказать ? я это и так знаю



Все перепроверил http://mydc.ru/r/?http://xdn.msk.ru/dcs/ сделал повторный рефрешь, те баги о которых ты писал в моем хаблисте были вызваны именно этим или подобным хабом(их там было штуки 3) - при этом он хоть как то работал а это значит что в пингере есть время на пинговку хаба и если за заданый интервал времени от хаба нет вестей он продолжает идти дальше (но для написания этого я обошёлся 2-3 строчками так что механизьм этот несовершенен)
В твоем же хаблисте сейчас везде пишет "оффлайн" и он отказываеться вообще пинговать остальные хабы - это то при добавлении одного багонутого хаба где в птохе - включена опция

Автор: mariner 27.12.2011, 8:52

Меллон, чем эта опция баганутая? Или у тебя опять словесный понос?

Автор: Mellon 27.12.2011, 9:19

Ты конечно извиняй но нет слов, я и так знаю что мой скрипт полное решето он лиж был создан для решения вот http://mydc.ru/r/?http://dc.piring-net.net/fox/index.html таких проектов, думал через 3 года после появления моего скрипта, действительно появился человек который предусмотрел все эти нюансы давно доработал пингер и остальное, но то что я вижу сейчас - просто ужаснулся... Ладно ещё пока погоняю твой скрипт на стабильность и баги, просто ранее стоял вопрос создания маленького локального списка(хаблиста) желательно в пределах сети - но редактировать список через бд было куда удобнее нежели соваться на форум и там вечно обновлять списки - в свое время я перебрал скриптов 20 этих хаблистов и ед проекты которые я так и не юзал это на перле - как показало время они самые стабильные..

Цитата(mariner @ 27.12.2011, 9:52) *
Меллон, чем эта опция баганутая? Или у тебя опять словесный понос?

нет у тебя слабоумие читай пост повторно, или купи очки, где я писал что эта опция баганутая ?
Для особых словестнопоносных троллей типо маринера - в краце если в хаблист enyby добавляешь хаб поддерживающий эту опцию то происходить следующие на картинке - http://mydc.ru/r/?http://www.nicosoft.ru/uploads/2011-12-27_083259.jpg

Автор: mariner 27.12.2011, 9:42

Цитата
обавлении одного багонутого хаба где в птохе - включена опция

Я вообще-то твои посты цитирую и получается, что хаб баганутый из-за этой опции. Ты уж обосную хотя бы, чем опция баганутая, почему же скрипт от Enyby работает у меня и вдруг не работает у тебя. Да, у меня хаб с это же опцией big_smile.gif

Все, видимо, из-за моей "брутальности и бессердечности"

Меллон, вам тролли тока мерещатся. Тут пока только критики.

Автор: Mellon 27.12.2011, 10:10

mariner, вы или прекрасно понимаете что пост 2х смысленный и каждый понимает в меру своей распущенности или раз вы не тролль то я сделаю предположение что вам до 20. Я являюсь посетителем данного хаба и знаю о его проблемах и багах причем сама администрация хаба это не скрывает им до лампочки вообще все это, для того что бы не разводить пустую дискуссию можно было просто положиться на мое мнение. Но раз вы такой недоверчевый то милости прошу проведите на хабе так годик или 2 и осознаете да и дело вовсе там не в том что он баганутый а в том что администрация положила на это дело давно.... Но а я лиж рад что есть такие хабы с данной опцией с помощью которых можно помочь в отладке и тестировании того же хаблиста.

Автор: mariner 27.12.2011, 11:11

Давай так. Я сейчас разверну виртуалку на убунте и проверю. Если все будет пинговаться - ты публично извинишься перед Enyby.

Ну и что же мы видим? А видим мы следующее. В хаблист добавлено 2 хаба c "волшебной опцией". Плюс добавлен просто сервер "от балды", на котором пингер хаблиста из ЭТОЙ темы затыкается и не обрабатывает. И что же? Все обработано верно.

Результат доступен http://mydc.ru/r/?http://213.141.136.68/

Собственно что и требовалось доказать: меллон - peace door ball!

Автор: Enyby 27.12.2011, 11:25

Mellon:
Я не знаю что у тебя происходит с хаблистом, но ни одна страница хаба не работает:

Цитата
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Site\xdn.msk.ru\dcs\hub.php on line 29

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in D:\Site\xdn.msk.ru\dcs\hub.php on line 40
Хаб не найден
Хаб не найден, проверьте ссылку по которой вы пришли. Полный список всех хабов находится по ссылке Все хабы

Возможно у меня баги, а возможно ты уже что-то наменял.
UPD: Судя по тому, что у маринера все работает, то склоняюсь ко второму варианту.
Так же я вижу в списке хабов названия всех (!) хабов. А это значит, что пинг был успешен. потому что если хаб не пингуется, то он висит с титулом "нет информации".
Ну и там есть шара, число юзеров и прочее, чего бы небыло, если бы хабы действительно не пинговались.

ADD:
Запустил руками http://mydc.ru/r/?http://xdn.msk.ru/dcs/refresh.php:
Код
........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
....................dc.myhub.pp.ua:420 - online
allavtovo.ru:411 - online
dc.ozerki.net:411 - online
dc.a-galaxy.com:411 - online
xdn.msk.ru:411 - online
dc.pashahub.ru:411 - error
dc.oldbeer.ru:411 - online
dc.byxou.ru:411 - offline
dc.verlihub.org:411 - online
dc.playground.ru:411 - online
zion.org.ru:411 - online
dc.dark-castle.ru:411 - online
dc.klan-hub.ru:411 - online
godc.ru:411 - online
ruslegions.ru:411 - online
dc.schelkovo-net.ru:411 - online
fathub.ru:411 - online
4local.ru:411 - online
dc.kmsnet.ru:411 - online
10.225.208.208 :411 - online
dc.langate.ua:411 - online
starshub.ru:411 - online
artcool.org:411 - online
dc.maxnet.ua:411 - online
megadc.ru:411 - online
dc1.xdnet.ru:411 - offline
connect-server.net:411 - online
10.205.6.42:411 - online
10.10.200.34:411 - online
172.24.40.50:411 - online
dominko.zapto.org:411 - offline

Результат - 3 хаба оффлайн, 1 с ошибкой, остальные онлайн.
На вебморде все стали оффлайн, из чего делаю вывод что проблемы с БД.

Автор: mariner 27.12.2011, 11:51

Mellon, но где же извинения??

Автор: Mellon 27.12.2011, 13:16

to mariner ты под дурочка что ли косишь или под дауна ?

Цитата
где там этот хаб ?


to Enyby, читай выше добавляю хаб твой хаблист встает, шара и юзеры ? лол на дату посмотри юзеров там около 200было на хабе с прошлой пинговки, запускаю новую пинговку уже с новым хабом который я добавил где на одном из хабов реально 160 юзеров при этом твой хаблист показывает 200бзеров - с прошлого пинга из базы, так что не смеши меня напихал в мой скрипт своих лаже хабов я тоже могу запихнуть точно такие же хабы после которых у тебя весь хаблист встанет, почему же у тебя в демке нет тех хабов что ты мне надобавлял, за умного сойти решил ?

Автор: mariner 27.12.2011, 13:18

Цитата
to mariner ты под дурочка что ли косишь или под дауна ?

Дядь, ты за базар когда отвечать то начнешь? Или ты не "дядя", а так, ребёнок малый? Ты заявил выше, что мол "с этой опцией не пингует". Были выложены опровержения. Кроме того - я не в вашей локалке. Дай туда доступ и я с удовольствие проверю и тот хаб.

Автор: Mellon 27.12.2011, 13:47

вот сейчас я удалил этот хаб из твоего хаблиста, запускаем http://mydc.ru/r/?http://xdn.msk.ru/dcs/refresh.php и теперь все онлайн и юзеры и шара норм отображает http://mydc.ru/r/?http://xdn.msk.ru/dcs/
Да я немного изменил там кое что но с отображением это не как не связанно я лиж изменил название таблицы hl_hub на hublist_hubs о чем к стате уже писалось ранее, все запросы которые отвечают за пинг хаба и отображение были так же переписаны. В addhub.php там просто обращение идет к hl_hub попзже поменяю на hl_hub.
Баг был ещё до того как я решил обеденение таблиц сделать, так что могу продемонстрировать все на чистой коппи, буде все тоже самое...

Цитата(mariner @ 27.12.2011, 14:18) *
Дядь, ты за базар когда отвечать то начнешь? Или ты не "дядя", а так, ребёнок малый? Ты заявил выше, что мол "с этой опцией не пингует". Были выложены опровержения. Кроме того - я не в вашей локалке. Дай туда доступ и я с удовольствие проверю и тот хаб.


Несешь ахинею вечно ты не на нашей локалке а абонент пиринговой сети и этот хаб что я те дал не имеет отношения к моей локалке он так же в пиринг сети, добавь ровно столько же хабов сколько и у меня в хаблисте, таких-же и добавь этот адрес которого уже звучал не однокартно, далее запусти http://mydc.ru/r/?http://xdn.msk.ru/dcs/refresh.php посмотрим что будет а то умные пля добавили 4 хаба причем на подбор а мне в хаблист хабов напихал enyby вообще не рабочих и так типо постебал... За базар как ты выражашься я уже ранее ответил и там был предоставлен скриншот - так что та ахинею которую ты несешь те не поможет

to mariner, зайди на http://mydc.ru/r/?http://213.141.136.68/ и посмотри ну и где извенения ?
to enyby а тебе ещё предстоит обьяснить нафига ты запихнул мне в хаблист 3 не рабочих хаба на одном из которых вот это в клиенте дс
*** Подключение к x.x.x.x...
*** Подключен
после чего хоть прожди 10 мин хоть час все так и будет вроде подключен а хаб не открывает, и мой хаблист ещё хоть как то фурыкал, когда твой загнулися сразу лиж от одного хаба не поддерживающем пинг с хблистов

Автор: mariner 27.12.2011, 14:06

Цитата
to mariner, зайди на http://mydc.ru/r/?http://213.141.136.68/ и посмотри ну и где извенения ?

О, ты даже не поленился напихать туда локальных хабов, к которым у интернет-хоста доступа нет. Да ты молодец!

Убрал пингер под кат, чтобы личности не могли его ручками дергать, а то дергают, а на хабах ограничения врубаются на вход.

Кстати, а что я должен увидеть?

Автор: Enyby 27.12.2011, 14:14

to Mellon:
Короче. Это не имеет смысла. Я не отвечаю за хаблист с модификациями. Что ты там делал - одному богу известно. Вижу что не работают страницы хаба. Вижу что пингование работает нормально.
Дальнейший разговор имеет смысл только на оригинальной версии хаблиста.

PS Добавил хабы в демо.

И да. "Где едим, там и срем", простите за грамматику. Может мой хаблист надо обсуждать в моей теме? Тред снова скатывается в срач.

Автор: Mellon 27.12.2011, 15:19

Цитата(Enyby @ 27.12.2011, 15:14) *
to Mellon:
Короче. Это не имеет смысла. Я не отвечаю за хаблист с модификациями. Что ты там делал - одному богу известно. Вижу что не работают страницы хаба. Вижу что пингование работает нормально.
Дальнейший разговор имеет смысл только на оригинальной версии хаблиста.

PS Добавил хабы в демо.

И да. "Где едим, там и срем", простите за грамматику. Может мой хаблист надо обсуждать в моей теме? Тред снова скатывается в срач.

Что я напихал ? ты хоть разбираешься маленько я просто переименовал тэйбл бд, я могу и убрать это и оригинал поставить, всеравно все будет тоже самое, изменение названия таблицы не как не связанно вообще с работой хаба на мозги не капай ок ? Я возвращал оригиналь там все тоже самое...

Ладно потом поставлю чистый оригинал и дам линк... Больше в чем уверен что там будет все тоже самое, так как сейчас то на http://mydc.ru/r/?http://xdn.msk.ru/dcs - после удаления того хаба все норм же работает...)

Автор: mariner 27.12.2011, 15:24

Эй, меллон, так дай доступ в локалку. Глянуть ну очень охота на тот хаб.

Автор: Ksan 27.12.2011, 17:01

Цитата(Mellon)
раз вы не тролль то я сделаю предположение что вам до 20.

На баш!

PS: [To All] И вообще, ребятки, зачем вы мучаете животное?
Забейте (забаньте?) его и хватит его бред читать.

Автор: Alexey 28.12.2011, 7:02

Цитата(Mellon @ 27.12.2011, 13:47) *
to mariner, зайди на http://mydc.ru/r/?http://213.141.136.68/ и посмотри

Я не маринер, но я зашёл и увидел рабочий хаблист. Или я не туда смотрю?


Цитата(Enyby @ 27.12.2011, 14:14) *
И да. "Где едим, там и срем", простите за грамматику. Может мой хаблист надо обсуждать в моей теме?

Перенёс.

Автор: KT315 28.12.2011, 15:29

Цитата(mariner @ 27.12.2011, 16:24) *
Эй, меллон, так дай доступ в локалку. Глянуть ну очень охота на тот хаб.

Могу дать, посмотришь big_smile.gif

Автор: mariner 28.12.2011, 20:39

Так, проверил я 10.225.208.208))

Вы не поверите, но предположение, что меллон peacedoorball подтвердились big_smile.gif

Результуты http://mydc.ru/r/?http://213.141.136.68/

Автор: dj hoodo 29.12.2011, 3:01

а кто сомневался? big_smile1.gif

Автор: mariner 29.12.2011, 9:41

ну, господа. Я вот верю только своим глазам. Вот и проверил, из принципа.

Автор: dj hoodo 29.12.2011, 20:03

ну а я сразу не поверил в эти сказки...
я то знаю, что перед тем как этот скрипт был выложен здесь, он стоял (и до сих пор стоит) в сети Триолан не один год,
и я думаю что если бы такой баг был, то Enyby, его за несколько лет обнаружил бы уже.

Автор: Mellon 1.1.2012, 17:16

И что же ты там проверил ?
после хаба Нет информации dchub://www.ya.ru:80 Таймаут 0/0 0/0
Все остальные хабы оффлайн, может быть объяснишь ? я ещё промолчал о том что ты не тестил тот хаб что я тебе дал

Автор: Enyby 17.1.2012, 9:34

Mellon, проверка хабов идет совсем не в том же порядке, в каком они выводятся на экран. Они проверяются все одновременно.

Обнаружил интересную штуку. Есть один http://mydc.ru/r/?https://bugs.php.net/bug.php?id=30852. Если будет много хабов и будет старый PHP, то Apache при пинге будет крашится.

ADD:
Оттуда же:

Цитата
Windows can only select(), by default, a maximum of 64 handles at one time.

5.0.3 changes this limit to 256 in the Streams subsystem; you can try this yourself with a stable snapshot and using the native functions stream_socket_client(), stream_socket_server() and stream_select().

I would expect this change to also work with the sockets extension. It builds ok here with 5.0.3, so it sounds like you do indeed have a configuration issue.

Short version: try a 5.0.3 snapshot, it should behave better

Вывод: используйте версию PHP не ниже 5.03. В этом случае проблемы пингования начнутся с 256 хабов. В противном случае порог куда ниже - 64 хаба.
В будущем постраюсь переписать на использование пула сокетов с очередью.

Автор: LAV © 28.1.2012, 7:39

Цитата(Enyby @ 29.8.2011, 23:54) *
3. Хаблист заточен под пингование 1 раз в 5 минут. Если вы используете другой интервал, то графики на странице хаба, могут иметь удручающий вид. Можете попробовать их заменить на флеш-компоненты, это должно обеспечить лучший вид.


Предлагаю немного модифицировать код файла day.php, чтобы при увеличении интервала пингов с 5 минут до 10-20-30, не получать на дневных графиках частокол.

Участок кода

Код
        imageline($canvas, x($i), y(0), x($i), y($old_sr), $color->base);
        imageline($canvas, x($i), y($old_sr), x($i), y($sr), $color->up);
    }
    else {
        imageline($canvas, x($i), y(0), x($i), y($sr), $color->base);
        imageline($canvas, x($i), y($sr), x($i), y($old_sr), $color->down);
    }
}


заменить на

Код
        imagefilledrectangle($canvas, x($oldi), y(0), x($i), y($old_sr), $color->base);
        imagefilledrectangle($canvas, x($oldi), y($old_sr), x($i), y($sr), $color->up);
    }
    else {
        imagefilledrectangle($canvas, x($oldi), y(0), x($i), y($sr), $color->base);
        imagefilledrectangle($canvas, x($oldi), y($sr), x($i), y($old_sr), $color->down);
    }
    $oldi = $i;
}


Т.е. вместо линий рисуем прямоугольники.

Автор: Enyby 28.1.2012, 9:38

Неплохая идея. Только сначала переменную $oldi нужно инициализировать.

Автор: ShadoWx 2.2.2012, 9:10

Возможно вы уже знаете о багах, но я все же отпишусь shame.gif

На страничках хабах, некорректно отображаются данные, включая графики в качестве хаб-серверов используются rushub'ы
Подскажите как сделать по умолчанию сортировку по кол-ву онлайн пользователей

Автор: Enyby 2.2.2012, 11:55

Ну, во-первых, я не вижу никаких особых проблем с русхабом: http://mydc.ru/r/?http://inethub.olvi.net.ua/dc/hub.php?id=789 http://mydc.ru/r/?http://hublist.godc.ru/hub.php?id=1
В будущем я собираюсь переделать публичную версию на пингование раз в час с графиками на флеш. Это собираюсь. Но дел очень много, так что не факт что соберусь или что это будет скоро.

Вопрос: вот когда пингую хабы, имя бота Hublist, где его изменить на своё имя?
Ответ: Файл dc.php:

Код
function getInfo() {
    $my = new stdClass();
    $my->nick = "Hublist"; //(mt_rand(0, 100) < 50 ? "H" : "Нў)."ub".(mt_rand(0, 100) < 50 ? "l" : "I").(mt_rand(0, 100) < 50 ? "i" : "Уў)."st"; //substr(md5(mt_rand(0, 100000)), 0, 10);
    $my->desc = "Visit http://inethub.olvi.net.ua for more information.". //substr(md5(mt_rand(0, 100000)), 0, 10).
    '<FlylinkDC++ V:(r396),M:P,H:1/0/0,S:15>';
    $my->email = "Enyby@ya.ru"; //substr(md5(mt_rand(0, 100000)), 0, 10);
    $my->share = mt_rand(100*1024, 120*1024)*mt_rand(1024*1024,2*1024*1024);
    $my->conn = 'LAN(T3)';
    return $my;
}


Вопрос: Где показывает сколько юзеров на хабе, там через палку / стоит 0,1,2,3 и т. д. как это убрать?
Ответ: Это среднее число юзеров на хабе за неделю. Через неделю будет нормальные числа.
Это параметр адекватно отражающий число юзеров хаба, так как текущее значение меняется быстро. Можно убрать в выводе, но на него много чего завязано, включая дефолтную сортировку.
в index.php:
Код
                <td class="numeric"><span<?php echo ($row['max_users'] != '') ?
                    ' tooltip="Пик юзеров: '.htmlspecialchars($row['max_users']).'"' : '';
                    ?>><?php echo intval($row['users']); ?>/<?php echo intval($row['avg_users']);
                ?></span></td>
удалите эту часть:
Код
/<?php echo intval($row['avg_users']);
                ?>


Вопрос: Где поменять шару бота?
Ответ: Там же где и ник. Чуть ниже.

Вопрос: Как изменить сортировку по умолчанию?
Ответ: В файле index.php:
Код
if(isset($_GET['name'])) {
    $order = "name";
}
elseif(isset($_GET['host'])) {
    $order = "host";
}
elseif(isset($_GET['status'])) {
    $order = "status.sort, avg_users DESC";
}
elseif(isset($_GET['users'])) {
    $order = "users DESC";
}
elseif(isset($_GET['avg_users'])) {
    $order = "avg_users DESC";
}
elseif(isset($_GET['share'])) {
    $order = "share DESC";
}
elseif(isset($_GET['avg_share'])) {
    $order = "avg_share DESC";
}
else {
    $order = "status.sort, avg_users DESC";
}
в этом коде последнюю часть меняем на:
Код
else {
    $order = "status.sort, users DESC";
}
это будет сортировка по числу пользователей. Остальные варианты сортировок осуществляются аналогично.

Автор: ke(x)one 10.2.2012, 16:12

а как сделать что бы он через каждый час сам обновлялся?

Автор: mariner 10.2.2012, 16:31

Поставить в планировщик задач

Автор: ke(x)one 10.2.2012, 16:42

как?

Автор: Saymon21 10.2.2012, 17:56

ke(x)one, http://mydc.ru/r/?http://ru.wikipedia.org/wiki/Cron

Автор: LEXSOR 28.2.2012, 0:38

Цитата(ke(x)one @ 10.2.2012, 17:12) *
а как сделать что бы он через каждый час сам обновлялся?


0/60 * * * * php /usr/local/www/домен/hublist/refresh.php

исправить только путь до вашего файла refresh.php


FreeBSD 9.0 x64 полёт нормальный

Проблем пока что нету, пример работы http://mydc.ru/r/?http://hublist.rznlive.ru/

Автор: mariner 28.2.2012, 8:00

Ну да, все норм, тока графики кривые

Автор: ke(x)one 22.3.2012, 13:14

как настроить планировщик задач что бы хаблист обновлялся каждые 2-10 минут?

Автор: Enyby 22.3.2012, 15:59

Понимаю, бан в гугле это тяжело...

Ну не переживай, у меня много свободного времени, так что я поискал за тебя. Вот результат:
http://mydc.ru/r/?http://www.ixbt.com/soft/ms-task-scheduler.shtml
Если тебе еще что-то нужно будет, ты только напиши. Тысячи пользователей только и ждут твоих простых и очевидных вопросов, так что тебе даже не нужно будет напрягаться формировать поисковый запрос и смотреть результаты.

Автор: Mellon 24.8.2012, 19:30

Это для старой виндовс для 7 тоже бы не помешало big_smile.gif

Автор: LAV © 17.1.2013, 21:22

Сунулся у себя в базу данных и обнаружил, что там сохранены данные даже годовой давности. Т.е. используются данные за последние две недели, а хранятся вообще все, которые собирались за период существования хаблиста.
Отсюда вопрос: Это у меня что-то неладно, или в данном хаблисте не предусмотрено удаление из базы данных старше 2-х недель?

Автор: Enyby 17.1.2013, 22:23

Я думал над этим, но статистику оставил, потому что были планы перейти на Flash/XML графики с просмотром истории. Если мешает - добавьте запрос дропающий все что старше двух недель. Самый простой вариант - на главную страницу. Можно еще в крон.

Автор: CrazyKiller 10.2.2013, 11:00

Приветствую всех !
Давно меня не было на форуме big_smile.gif

Зацениваем Хаблист http://mydc.ru/r/?http://arena.triolan.com.ua/hublisti.html

Только прощу сильно не засирать, ещё в стадии разработки, кое что ещё будет проделывается, КСС, Дизайн и т д big_smile.gif

Принимаются советы по улучшению.

Спасибо Enyby за Помощь и за Хаблист big_smile.gif

Автор: Артём 10.2.2013, 12:35

CrazyKiller, кнопочка ВернутЬся без мягкого знака у тебя bad_smile.gif

Автор: CrazyKiller 10.2.2013, 12:56

Цитата(Артём @ 10.2.2013, 13:35) *
CrazyKiller, кнопочка ВернутЬся без мягкого знака у тебя bad_smile.gif

Сенкс, не заметил, ночью делал кнопки )))

Автор: Артём 10.2.2013, 12:59

CrazyKiller, хаб не добавляет, никакой инфы при попытки добавить не пишет. big_smile.gif

Автор: CrazyKiller 10.2.2013, 13:00

Цитата(Артём @ 10.2.2013, 13:59) *
CrazyKiller, хаб не добавляет, никакой инфы при попытки добавить не пишет. big_smile.gif

адрес хаба ? big_smile.gif

Сабмит чет лаганул, вернул прежний, пробуй.

Автор: dj hoodo 17.2.2013, 19:28

Прикольно, и мой хаб там есть big_smile.gif а что с триолан.ин уа там с НГ не оновляется хаблист? и хаб лежит big_smile.gif

Автор: CrazyKiller 19.2.2013, 14:04

Цитата(dj hoodo @ 17.2.2013, 19:28) *
Прикольно, и мой хаб там есть big_smile.gif а что с триолан.ин уа там с НГ не оновляется хаблист? и хаб лежит big_smile.gif


уже обновляется, добавлю в мониторинг себе парсер пожже))

Исправили кнопку Добавить хаб, зацениваем )))

Автор: dj hoodo 14.3.2013, 1:14

надо бы обьяснить назначение иконок в статусе. ну зеленинькая понятно- онлайн краснинькая с крестиком -оффлайн.. но есть исчо синенькая желтинькая... это с первого взгляда хз...

Автор: CrazyKiller 18.3.2013, 0:53

Цитата(dj hoodo @ 14.3.2013, 1:14) *
надо бы обьяснить назначение иконок в статусе. ну зеленинькая понятно- онлайн краснинькая с крестиком -оффлайн.. но есть исчо синенькая желтинькая... это с первого взгляда хз...


Как-то так, думаю понятно будет всем big_smile.gif

Автор: marsss 5.4.2013, 22:14

Здравствуйте! есть несколько вопросов:
1.Как можно сделать обновление при входе на хаб лист то есть заходит человек или он просто обновляет страницу и пока он ее обновляет подключается refresh.php то есть кто зайдет на хаб лист как раз и инфу обновит victory.gif
2. Происходит ошибка при обновлении : /refresh.php Выдёт: Fatal error: Call to undefined function socket_create() in D:\...\...\hubs\dc.php on line 94 в чем может быть проблема? unhappy.gif

Автор: Saymon21 5.4.2013, 22:16

Цитата
Fatal error: Call to undefined function socket_create() in D:\...\...\hubs\dc.php on line 94

Установить/Включить сокеты.

Автор: dj hoodo 18.4.2013, 19:50

Цитата(marsss @ 5.4.2013, 23:14) *
Здравствуйте! есть несколько вопросов:
1.Как можно сделать обновление при входе на хаб лист то есть заходит человек или он просто обновляет страницу и пока он ее обновляет подключается refresh.php то есть кто зайдет на хаб лист как раз и инфу обновит victory.gif


при этом будет происходить пинги хабов, что их владельцам не понравится...
раз в час самое оно

Автор: ANDRBEST 26.4.2013, 18:15

на серве открыл браузером refresh.php, а в него прописал перед кодом php:

Раскрывающийся текст

<script type="text/javascript">
function locs(){
document.location.href="";
}
setTimeout("locs()", 300000);
</script>


хабы пингует каждые 5 минут.

Автор: LAV © 26.4.2013, 19:06

В чем смысл сего действа?

Автор: Saymon21 26.4.2013, 23:43

Смысл видимо в изобретении велика, при этом не лучшими способами.

Автор: dj hoodo 26.7.2013, 11:46

Установил хаблист на хостинг. Думал будут проблемы с пингованием или графиками... Но все ОК big_smile.gif что не может не радывать. Тини хаблист на хостинг не зальешь...

http://mydc.ru/r/?http://dj-hoodo.sytes.com.ua/hub/