Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Wątek jest głównie teoretycznym rozważaniem - potrzebuję małej burzy mózgów osób, które mają dobry pomysł na rozwiązanie problemu.
Udało mi się zrzeszyć pewną grupę ludzi na IRC-u. Do logowania wiadomości na kanale używam supybota - wszystko zapisywane jest w plikach tekstowych (logi można przeglądać poprzez www).
Zastanawiam się, w jaki sposób można by dodać kolorowanie składni (odznaczenie poszczególnych elementów linii: timestampu, nicka czy samej wypowiedzi) oraz przeszukiwania logów pod względem użytej frazy.
Kolorowanie składni można załatwić poprzez użycie oddzielnej aplikacji logującej (czego nie chciałbym robić), regularne konwertowanie txt -> html lub użycie ajaxa po stronie klienta. Jednak powyższe rozwiązania nie satysfakcjonują mnie - każde ma swoje minusy.
Do przeszukiwania logów można użyć google'a lub napisać własny skrypt przeszukujący pliki (to chyba nie będzie zbyt wydajne przy dużej liczbie plików).
Jeżeli ktoś posiada ciekawsze pomysły lub chociaż jeden dobry argument dot. któregoś z powyższych rozwiązań, prosiłbym o odpowiedź.
Offline
Przerzucenie danych z plików do bazy, dopisanie prostej aplikacji w PHP.
Offline
[quote=sigo]Kolorowanie składni można załatwić poprzez użycie oddzielnej aplikacji logującej (czego nie chciałbym robić), regularne konwertowanie txt -> html lub użycie ajaxa po stronie klienta. Jednak powyższe rozwiązania nie satysfakcjonują mnie - każde ma swoje minusy.[/quote]
Jest jeszcze jedna droga — kolorowanie tego w locie przez PHP (czy tam inny język wykonywany po stronie serwera). Wtedy musisz napisać prostą aplikację która będzie przyjmować jako argument w GET jednoznaczną nazwę identyfikującą plik, ale zamiast po prostu go wyświetlać, będzie go wczytywać, kolorować (tutaj lepiej użyć stylów) i dopiero wyświetlać. Wystarczy Ci każdą kolejną linię przerabiać przez prosty regexp, z ewentualną poprawką na zdarzenia na kanale (dołączenie użytkownika, kicki, rozpoczęcie i zakończenie logowania).
[quote=sigo]Do przeszukiwania logów można użyć google'a lub napisać własny skrypt przeszukujący pliki (to chyba nie będzie zbyt wydajne przy dużej liczbie plików).[/quote]
Będzie tak wydajne jak wydajnie to napiszesz.
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00096 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.226.187.210' WHERE u.id=1 |
0.00090 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.226.187.210', 1732927976) |
0.00060 | SELECT * FROM punbb_online WHERE logged<1732927676 |
0.00079 | SELECT topic_id FROM punbb_posts WHERE id=141457 |
0.00084 | SELECT id FROM punbb_posts WHERE topic_id=16206 ORDER BY posted |
0.00082 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=16206 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00168 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=16206 ORDER BY p.id LIMIT 0,25 |
0.00113 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=16206 |
Total query time: 0.00793 s |