Перейти к контенту

Рекомендуемые сообщения

IPB Logic Inspector — сценарий, цель которого заключается в поиске и устранении «информационного шума» в базе данных форумов Invision Power Board. Некоторые возможности:

  • Поиск и удаление «нестандартных» полей и таблиц в базе данных (анализ делается на основании корректируемой «стандартной структуры БД форума»);
  • Поиск повторяющихся пользовательских логинов;
  • Поиск и удаление постов, не имеющих существующих родительских топиков; топиков, не имеющих существующих родительских форумов; форумов, не имеющих существующих родительских категорий;
  • Поиск и удаление мусорных записей о пользователях, ожидающих подтверждения регистрации;

И многое другое. :D Вся эта гадость в той или иной степени вредит работе форума хотя бы тем, что занимает место и не даёт никакой отдачи. Уничтожим гадость! :)

 

Будет поддерживаться вся линейка форумов IPB, но первая версия будет снабжена драйвером только для поколения 2.0.x. Разработка сценария в данный момент ведётся, прогресс буду отмечать в этой теме. ;)

Ссылка на комментарий
Поделиться на других сайтах

Молодец, хорошая идея.

 

Вот только как-то странно это выглядит, в IPS начит сидят лохи и пишу нафиг не нужную гадость, а Вы такой молодец эту гадость трёте?

 

Нет, я конечно понимаю, что есть в IPB хлам, но выглядит всё именно так...

Ссылка на комментарий
Поделиться на других сайтах

Вот только как-то странно это выглядит, в IPS начит сидят лохи и пишу нафиг не нужную гадость, а Вы такой молодец эту гадость трёте?

 

Нет, я конечно понимаю, что есть в IPB хлам, но выглядит всё именно так...

Если вам кажется, что такая ситуация выглядит странно — ради Боогу, не пользуйтесь программой, когда она выйдет. На мой же взгляд, это называется заботой админа о работоспособности своего форума. Те, кто работал с БД IPB близко, знают, сколько там бреда и хлама. :D
Ссылка на комментарий
Поделиться на других сайтах

Ну я с IPB знаком не первый день, сколько точно не скажу - а то наедут, что сам с варезом борюсь, а оказывается не лучше других :D

 

Я просто сказал, как это смотрится со стороны, а если интересно - я давно организовал это маленьикими, удобными shell-скриптиками (.sh - аналог виндовских bat'ок).

 

Собственно решается это всё парой SQL запросов.

 

Те, кто работал с БД IPB близко, знают, сколько там бреда и хлама. ;)

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

 

Кому логи поисковиков не нравятся, а кто свою поисковую программу пишет - на форумах популярных тестит... Это я к примеру сказал.

 

И вообще, лишние функции надо вырезать, а не фиксить - ИМХО.

Ссылка на комментарий
Поделиться на других сайтах

Собственно решается это всё парой SQL запросов.
Парой? Нет, парой не решается. ;)

 

Вот конкретно сколько там в большинстве случаев ненужных функций - незнает никто ибо для каждой ситуации по разному.
А вот сколько вешать граммов, определит сам админ, который будет пользоваться этим инструментом... :D
Ссылка на комментарий
Поделиться на других сайтах

А в будущем моде будет выводиться лог с деталями очистки? :D

В любом случае - буду ждать ;)

Изменено пользователем pikachu
Ссылка на комментарий
Поделиться на других сайтах

pikachu, сценарий будет работать по принципу программ в духе «восстановителей реестра» — т.е. осуществляется сканирование («поверхностное», «обычное», «параноидальное» или «пользовательское» — думаю, логика понятна) и пользователю выдаётся список результатов — т.е. перечень фигни с сортировкой по важности. К каждому пункту программа будет предлагать «рекомендуемое действие» (например, при наличии повторяющегося логина — переименовать двойника).

 

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

 

Конечно, пользователь может выбрать «применить рекомендуемые действия ко всем найденными несоответствиям», но тут уже бог ему судья. :D

Изменено пользователем Dr.Freddy
Ссылка на комментарий
Поделиться на других сайтах

А удаление пустых таблиц из бд каким образом будет происходить, т.е будет сверка с mysql_queries.php и подоными файлами?
Ссылка на комментарий
Поделиться на других сайтах

Dr.Freddy: Теоретически:

Скрипт сверяет все файлы форума, где есть sql-запросы и существующие таблицы в базе, если таблица или запрос в .php отсутствует - скрипт предлагает уничтожить ненужную запись

Ссылка на комментарий
Поделиться на других сайтах

Dr.Freddy, Вы неправы.

 

Возможна.

 

Только вот отследить все эти запросы и повытаскивать будет непросто.. Хотя если расчитывать, что запросы делаются через класс dbdriver - задача намного легче.

Ссылка на комментарий
Поделиться на других сайтах

Нет, я прав. Хотя если кому-то охота писать PHP&SQL парсер для скриптов форума (в т.ч. нестандартных), вытаскивая и преобразуя все вызовы mysql_query, simple_construct, query, add_cache_query, do_update и т.п. (не забывая про семейство коварных simple_*, а также то, что запросы вовсе необязательно пойдут к целевой БД), ради Боогу. Барабан и палочки нынче бесплатно дают. :D

 

На заметку: отпарсите мне, пожалуйста, вот такую конструкцию:

$fields = "ri_id,ri_em";

$notes = explode( ",", $tmp['notify_modq_emails'] );

$DB->simple_construct( array ( "select" => $fields, "from" => "headers",

// Серега, WTF??????????
// иди в задницу. Всё правильно

"where" => $notes[3]/* Вот так!!! иначе упадёт*/." = '218'" ) );

$DB->simple_order( $notes['order_field'] );

$DB->simple_exec();

 

Далее — самаритянин, который возьмётся за эту задачу, не должен забыть, что для правильной реализации задачи ему необходимо полностью поддерживать синтаксис mySQL и прочих БД, для которых существуют IPB-драйвера.

 

В общем, я предпочитаю облегчить жизнь нормальным админам. Задача «пофиксить скрипт, дающий ошибку SQL-запроса» обыкновенно решается за 3 минуты при включенном мозге — слишком уж большая разница между временем, котороё придётся угрохать для автоматической реализации поставленной задачи. ;)

Изменено пользователем Dr.Freddy
Ссылка на комментарий
Поделиться на других сайтах

Хмм.

 

Нет, я согласен - это сложно, но глупых вопросов прикинь как меньше станет?!

Ссылка на комментарий
Поделиться на других сайтах

Зато есть надежда, что часть потенциальных авторов таких вопросов осилит решение (тем более что методы борьбы с такими ошибками на форуме раз сто уже обсуждали) и поднимет экспириенс. :D
Ссылка на комментарий
Поделиться на других сайтах

Dr.Freddy, Вы неправы.

Возможна.

Только вот отследить все эти запросы и повытаскивать будет непросто.. Хотя если расчитывать, что запросы делаются через класс dbdriver - задача намного легче.

 

Хмм.

Нет, я согласен - это сложно, но глупых вопросов прикинь как меньше станет?!

 

Оффтоп:

Как обычно слишком много общих фраз! :D

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...
Бета-версия движка готова. Ориентировочно к концу следующей недели будут первые версии. :D Поскольку 2.1.x, льщу себя надеждой, замусорить ещё толком не успели, первый драйвер будет для 2.0.x. ;)
Ссылка на комментарий
Поделиться на других сайтах

Что топикстартер понимает под громкими словами

Поиск и удаление «нестандартных» полей и таблиц в базе данных (анализ делается на основании корректируемой «стандартной структуры БД форума»);

Поиск повторяющихся пользовательских логинов;

А таски уже не катят да?

Поиск и удаление мусорных записей о пользователях, ожидающих подтверждения регистрации;
Ссылка на комментарий
Поделиться на других сайтах

Хм... Что не понятно с «нестандартными» полями? Пригодится людям, ставящим множетво модов, потом от части отказавшимся. Поможет очистить базу и вообще разобраться, что в ней лишнее. :D У меня форум, например, вырастал с 1.1, и на определённом этапе пришлось прилично повозиться, чтобы разобраться, где поля, нужные движку, а где остатки с наработок, тянущийся с древних версий форума.

 

Поиск повторяющихся пользовательских логинов — следы работы UNATCO (скрипт объединения форумов; использовать внешний скрипт в этом случае все же проще, чем ставить мод B&TM или — ужас — разбираться с двойниками вручную) и следы багов движка — в ранних версиях движка что-то капитально глючило с определением есть логин в базе / нет логина в базе.

 

GiV, вы объясните, что ВАМ непонятно, а не вынуждайте объяснять то, что людям в топике, похоже, вполне понятно. А то получаются те же громкие слова, в которых вы упрекаете меня. ;)

 

Что касается штатной задачи для удаления пользовательских неподтверждённых регистраций, она не всегда справляется со своей задачей. Я занимался как-то оптимизированием чужого форума: 70 записей в ibf_validating, запуск cleanout.php ничего не решает. Разбираться времени не было. Даже если в 2.1.x это решили, для владельцев 2.0.x это бесполезно.

Ссылка на комментарий
Поделиться на других сайтах

Хм... Что не понятно с «нестандартными» полями? Пригодится людям, ставящим множетво модов, потом от части отказавшимся. Поможет очистить базу и вообще разобраться, что в ней лишнее. :D У меня форум, например, вырастал с 1.1, и на определённом этапе пришлось прилично повозиться, чтобы разобраться, где поля, нужные движку, а где остатки с наработок, тянущийся с древних версий форума.

Полностью согласен с вышесказанным.

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

Сейчас в базе - чёрт ногу сломит, даже беглого взляда достаточно, чтобы увидеть, что большинство записей в таблицах - не больше, чем мусор.

 

 

Ыыыыы... Январь уже на исходе, где хотя бы бетка?

;)

Ссылка на комментарий
Поделиться на других сайтах

Я по горло занят внезапно появившимся сложным коммерческим проектом. Поэтому разработка IPB LI временно заморожена. Бета-версия ожидается не раньше конца марта.

 

Прошу прощения у ждущих, но переключаться в данном случае я не имею права.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.