Автор: derschaman 17.11.2010, 17:41
Возникла определенная идея
Опишу вкратце:
1. Делаем запрос в базу данных sqlite клиента
2. Выборка по дате и типу файлов - допустим 10 результатов
3. Экспорт полученных данных в тхт-файл
Для чего всё это:
Сервер, на котором крутиться и хаб и клиент, скрипт на хабе - допустим раз в час - выводит информацию о последних добавленных в шару файлах из текстового файла.
*****Последние 10 новинок на сервере*********
1. МойФильм.avi (разумеется это магнет-ссылка)
2. МояИгра.avi (аналогично)
и тд...
Текстовый файл формируется за счет запроса в базу данных.
Помогите, пожалуйста, правильно выполнить запрос и выборку средствами sqlite3
Автор: Setuper 17.11.2010, 21:20
А нафига текстовый файл?
Ведь легче делать запрос в базу и сразу выводить инфу
Автор: HackFresse 18.11.2010, 10:19
На клиенте будет стоять скрипт, который переодически просматривает шару клиента и пишет в чат последнее добавленное? Полезно, ага - залил видос на сервачок, клиент его расшарил и в чат ссылок накидал
Автор: derschaman 18.11.2010, 16:02
Цитата
А нафига текстовый файл?
Ведь легче делать запрос в базу и сразу выводить инфу
Не важно, можно и без текстового файла, вопрос в том - как это реализовать
Автор: Nickolya 23.11.2010, 15:14
А какой-то информацией о базе вы обладаете? Что за клиент хотя бы, я тут конкретно не увидел. Предлагаю вам скачать какой-нибудь sqlite клиент и залезть в базу, если это выйдет - выкладывайте ее сюда, желательно в сжатом виде, а мы вам составим запрос
Автор: derschaman 23.11.2010, 17:44
Цитата(Nickolya @ 23.11.2010, 15:14)
А какой-то информацией о базе вы обладаете? Что за клиент хотя бы, я тут конкретно не увидел. Предлагаю вам скачать какой-нибудь sqlite клиент и залезть в базу, если это выйдет - выкладывайте ее сюда, желательно в сжатом виде, а мы вам составим запрос
Клиент любой из серии грей/флай/стронг - то есть те, которые хранят информацию в локальной sqlite базе. Я по базе спокойно могу лазить сколько мне душе угодно, хоть непосредственно sqlite3.exe, хоть при помощи сторонних утилит
Автор: derschaman 3.12.2010, 1:04
Неужели 1. Никому не интересна данная функция 2. "Нет пророков в своём отечестве..."
Автор: Ksan 3.12.2010, 1:45
1. Мне не интересна.
2. Попытался представить себе чат, куда все (или многие) выкидывают магнеты со своих обновленных шар..
Автор: derschaman 3.12.2010, 3:09
Цитата(Ksan @ 3.12.2010, 1:45)
1. Мне не интересна.
2. Попытался представить себе чат, куда все (или многие) выкидывают магнеты со своих обновленных шар..
Речь не идёт о многих, имеется в виду сервер (хаб+клиент) , и скрипт отрабатывает запросы только на этом сервере, а не у кучи юзеров.
1. В скрипте хаба жестко забит абсолютный путь к базе клиента (установленного на этом же сервере)
2. Отбирает по типу файлов (.avi) 5-10 последних записей по дате.
3. Формирует табличку с магнет-ссылками
4. Периодически (раз в несколько часов) выводит табличку в чат.
5. Можно еще выводить табличку в ЛС при входе клиента.
Автор: Nickolya 5.1.2011, 2:03
Итак, рассказываю. Попробовал я, сначала клиенты с более старой версией библиотеки не открывали мою базу (этими клиентами были готовые библиотеки для луа, как специально для птоки, так и для чистого луа, т.е. конект напрямую из скриптов отпадает, если только собрать нужную версию библиотеки), затем актуальной версией открылось и я начал пробовать... Сам запрос составить было не так сложно, вот он:
Код
SELECT fly_file.name, fly_file.size, fly_file.stamp_share, fly_hash.tth FROM fly_file, fly_hash WHERE (fly_hash.id=fly_file.tth_id AND fly_file.ftype=6) ORDER BY stamp_share DESC LIMIT 10;
теперь то самое но: в поле fly_hash мы получаем какую-то фигню, данные в бд хранятся в формате blob, их надо перекодировать в нормальный вид, до чего я не дошел как сделать при помощи sqlite3.exe
В голову пришла другая идея, ведь в файллисте мы имеем нормальны данные, и timestamp там есть, поэтому проще будет разархивировать файл клиента files.xml.bz2, затем отпарсить xml и занести нужные данные в массив, из него отобрать нужные значения... Данное действо реализуется и на луа и на пхп, оно дико менее оптимально, но зато выглядит всё проще и реализуемей.