GithubHelp home page GithubHelp logo

degitx / rats-search Goto Github PK

View Code? Open in Web Editor NEW
1.5K 60.0 163.0 12.66 MB

BitTorrent P2P multi-platform search engine for Desktop and Web servers with integrated torrent client.

License: MIT License

HTML 0.74% JavaScript 93.92% CSS 5.24% Batchfile 0.04% Dockerfile 0.06%
bittorrent search scanner p2p network torrent desktop-application search-engine

rats-search's Introduction

Rats on The Boat - BitTorrent search engine

CircleCI Build Status Appveyor Build Status Travis Build Status semantic-release Release Documentation

BitTorrent search program for desktop and web. Collect and navigate over base of torrents statistic, categories, and give easy access to it. Work over p2p network and support Windows, Linux, Mac OS platforms.

Features

  • Works over p2p torrent network, doesn't require any trackers
  • Supports own p2p protocol for additional data transfer (like search between rats clients, descriptions/votes transfer, etc.)
  • Search over torrent collection
  • Torrent and files search
  • Search filters (size ranges, files, seeders etc...)
  • Collection filters (regex filters, adult filters)
  • Trackers peers scan supported
  • Integrated torrent client
  • Collect only statistic information and don't save any torrents internal data
  • Supports torrents rating (voting)
  • P2P Search protocol. Search in other Rats clients.
  • Web version (web interface) for servers
  • Top list (mostly common and popular torrents)
  • Feed list (Rats clients activity feed)
  • Translations: English, Russian, Ukrainian, Chinese
  • Drag and drop torrents (expand local search database with specific torrents)
  • Descriptions association from trackers
  • Torrent generation and automatic adding to search DB
  • WebSockets & REST API for server/search engine. You can made search request and create your own UI client.

Architecture

Basic Architecture

Contributing

We are welcome any contributing: bug fixes, improvements, code refactoring and other stuffs.

Translation guide

Own strategy / Other tracker support

Usage Manuals

Download Desktop client

By default we recomended using desktop version of application. Download and install most recent one for Windows, MacOS, Linux.

Start desktop client from master branch

Clone repository with submodules:

git clone --recurse-submodules https://github.com/DEgITx/rats-search.git

Then make sure that you have Node.js and NPM (with Node.js) installed in your system, then install all needed packages:

npm install --force

and start master develop branch version:

npm start

Server webUI version installation

Beside default desktop cross-platform client, also exist separated webUI that can run from server independant as web-client + Node.JS server.

Clone repository, then make sure that you have Node.js and NPM (with Node.js) installed in your system, then:

npm install --force

Then compile web version:

npm run buildweb

Finally start server application:

npm run server

Now you can get access to web interface on 8095 port: http://localhost:8095

More about configuration

More about server compatibility and known issues

API usage implementation for clients

Docker image

You can simply run docker image with prepared server version. Just download last sources:

git clone --recurse-submodules https://github.com/DEgITx/rats-search.git

And build docker image & run:

docker build -t rats-search:latest rats-search
docker run -p 8095:8095 rats-search:latest

Now you can check the and open http://localhost:8095/ in browser

Donation

Support Rats Search development on OpenCollective

Contacts / Support

Screenshots

Main Window

License

MIT

rats-search's People

Contributors

anserme avatar dartraiden avatar degitx avatar faddat avatar poorpocketsmcnewhold avatar semantic-release-bot avatar smallandsoft avatar vgimly avatar xiya233 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rats-search's Issues

Размножение торрентов в поиске

Обнаружил такую штуку. При поиске, торренты дублируются в выдаче. Пример:
2018-07-18 02-28-56

Строка поиска:
Guardians.of.the.Galaxy.Vol.2.2017.HDRip
При этом, первый в списке торрент имеет ту же magnet ссылку, что и четвёртый, а третий такую же, как и второй.
То есть. 3й и 4й это повторы.

В базе данных по этому запросу всего 2 записи:


mysql> select * from torrents where MATCH('Guardians.of.the.Galaxy.Vol.2.2017.HDRip');
+--------+-------+-------------+-------+---------+----------+-----------+------+------+------------+------------+-----------------+------------------------------------------+---------------------------------------------------------------+----------------+-------------+-----------------+
| id     | files | piecelength | port  | seeders | leechers | completed | good | bad  | size       | added      | trackerschecked | hash                                     | name                                                          | ipv4           | contenttype | contentcategory |
+--------+-------+-------------+-------+---------+----------+-----------+------+------+------------+------------+-----------------+------------------------------------------+---------------------------------------------------------------+----------------+-------------+-----------------+
|  29089 |     1 |     4194304 | 34678 |       8 |        3 |       103 |    0 |    0 | 2346869247 | 1523838389 |      1531346086 | b0b00f092e5479de14b0283d33d81e02630e40b7 | Guardians.of.the.Galaxy.Vol.2.(2017).HDRip.x264.AFM.mkv       | 87.225.65.135  | video       | NULL            |
| 164877 |     1 |     1048576 | 38675 |       0 |        1 |         4 |    0 |    0 |  541255543 | 1525591739 |      1531557928 | db179196f92323bc70ddfbce94f3791c8102db74 | Guardians of the Galaxy Vol. 2.[2017].HDRip.[Kaztorrents].mp4 | 188.233.38.148 | video       | NULL            |
+--------+-------+-------------+-------+---------+----------+-----------+------+------+------------+------------+-----------------+------------------------------------------+---------------------------------------------------------------+----------------+-------------+-----------------+
2 rows in set, 1 warning (0,02 sec)

Дублируются не только торренты из базы, но и торренты, полученные от пиров (я так понял, именно они выделяются фиолетовым):

2018-07-18 02-47-42

1й и 4й торренты имеют одну и ту же magnet ссылку.
Результат выдачи по запросу The Matrix Trilogy

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

Использую серверный rats-search 0.24.0

Веб-доступ к Windows-клиенту

Видел инструкцию по линуксовой версии. У виндового клиента есть возможность показывать морду через браузер? Если клиент будет запущен на своей файлопомойке, должно быть актуально.

Проброс портов на роутере Zyxel Keenetic 4G II

Не работает проброска портов на сабже. Испробованные варианты: только TCP 4445-4446, только UDP 4445-4446 и оба варианта сразу.
Довольно странно вообще заниматься этим, учитывая что любой торрент-клиент и DC у меня настраиваются автоматом через UPnP протокол.

Проблемы с поиском

Версия 0.17.0 Portable
Вчера база была 20Тб. Искал "FBReader" нашлось сколько-то торрентов.
Сегодня база 75Тб. Проверка поиска "FBReader". Найдено 0.
Как? Почему? Что делать?

Сборка для Windows x32bit

Есть ли версия для 32-битных систем? На Пикабу есть только 64, не нашел инструкций по сборке в README. Заранее спасибо.

Режим "полный ход"

Хотел предложить фичу на дальнее будущее

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

Ситуация 1: речь о ноутбуке или планшете который работает в разных сетях т.е. в "домашней" и в "походном режиме". Дергать настройки туда-сюда постоянно - неудобно. Постоянно держать в "активном" режиме - не получишь сети или получишь большие лаги в дороге. Постоянно держать в "скромном" режиме - база пополняется медленно когда возможность есть пополнять быстро.

Ситуация 2: есть ПК работающий 24/7 или даже не работающий постоянно, но имеющий периоды покоя в которые можно было бы использовать ресурсы ПК и сети для заполнения базы, но в остальное время он занят другими полезными делами. опять же надо постоянно дергать параметры туда-сюда что неразумно.

Решение 1: переключатель "полный ход". Пока включен - параметры из настроек игнорируются и программа работает на полную мощь.

Вариация решения 1: в настройках есть второй комплект, он же профиль для "полного хода"

Вариация решения 1: возможность включить кнопку "на следующие Х минут\часов"

Решение 2: примненение настроек по расписанию. Ну то есть чтобы "ночью" программа работала во всю мощь, словом, действия на основе дней/часов/минут и т.п.

Решение 3: навроде того что умеют антивирусы - оценивать отсутствие нагрузки на ПК и ускорять сканирование. Подозреваю это гораздо сложнее.

Уменьшение размера БД

Каждая 1000 записей в БД требует ~7MB для хранения на диске.

БД на 144к:
Без сжатия - 951MB
W10 сжатие - 357MB
zip архив - 202MB
7z архив - 148MB

Может сделать хотя бы простейшее zip-сжатие? Экономия места более чем в 4 раза (2 при использовании встроенного в Windows сжатия папок).

Про оптимизацию самой БД (если там вообще можно что-то оптимизировать) ничего не говорю, это не приоритетная задача.
Информация о 157700 торов и 6.283K файлов заняла 1,048GB, что дает примерно 166 байт на запись.

uncaught exception

После обновления до 0.15.1, при попытке сохранить измененные настройки (при нажатии save settings) вылетает java exception
1
перезапуск программы не помог (ребут пока не делал)
из того что успел понажимать после обновления, только changelog
p.s: а зачем в changeloge поисковая строка? 😅

Результаты поиска

В результатах поиска пишется что-то вроде "no torrents for this search request were found"

Имхо, лучше всё же в кавычках писать, по какому именно запросу не нашлось (или вовсе даже нашлось)

Баг (предполагаемо) из-за неожиданного завершения программы

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

Кусок из rats.log, версия начала июля, портативная

Copyright (c) 2017-2018, Manticore Software LTD (http://manticoresearch.com)
precaching index 'torrents'
[10:04:01 PM] sphinx: precaching index 'files'
[10:04:01 PM] sphinx: WARNING: index 'files': prealloc: invalid meta file C:\PortableSoft\ROTB/data/database/files.meta; NOT SERVING
[10:04:01 PM] sphinx: precaching index 'version'
[10:04:01 PM] sphinx: WARNING: index 'version': prealloc: indexes with 32-bit docids are no longer supported; NOT SERVING
[10:04:01 PM] sphinx: precaching index 'store'
[10:04:01 PM] sphinx: precaching index 'feed'
[10:04:01 PM] sphinx: FATAL: invalid meta file C:\PortableSoft\ROTB/data/binlog.meta
precached 5 indexes in 0.186 sec
[10:04:01 PM] sphinx closed with code 1 and signal null
[10:04:01 PM] sphinx closing...

Я запаковал сломанную базу на всякий случай. Удаление папки data решает проблему. Нет базы - нет проблемы XD .

Фильтрация через RegExp

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

[os X 10.13.3] При запуске вылетает ошибка

Uncaught Exception:
Error: bind EADDRINUSE 0.0.0.0:4446
at Object.exports._errnoException (util.js:1050:11)
at exports._exceptionWithHostPort (util.js:1073:20)
at _handle.lookup (dgram.js:215:18)
at _combinedTickCallback (internal/process/next_tick.js:83:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:607:11)
at run (bootstrap_node.js:431:7)
at startup (bootstrap_node.js:155:9)
at bootstrap_node.js:551:3

Improvements

Привет, крайне интересный проект.

Есть пару идей для улучшения кода и просторы работы:

  • React Router - очень просто его использовать
  • Redux - очень просто и очень удобно (single source of thuth самое оно для такого проекта)
  • Отказаться от singleton класса т.к получаешь супер полиморфтные обьекты тыц
  • Разделить компоненты и логику т.к все очень в каше
  • Использовать Styled-components
  • Использовать scss aka sass т.к проще и удобнее.
  • Рефакторнуть евенты с сокетами, window не лучшая идея.
  • Lodash решит тысячи проблем что есть в коде (костыли с мерджингом обьектов и прочим )
  • Отдельно про forceUpdate, ну не нужен он вам :)
  • window не друг вам :)

PS: Если не планируешь много переписывания то могу сделать пару ПРов. Но они будут очень жесткие...

Удачи!

Не работает проверка базы по фильтрам контента

Если выставить фильтр по типу контента и нажать "CHECK TORRENTS" то результатом будет Torrents to clean: Х, где Х это количество торрентов в базе.

При этом, в логах видим такое:
ignore torrent His Master (Unabridged).m4b because type undefined not in: [ 'video' ]

для всех торрентов тип контента определяется как udefined

В базе такого нет:

mysql> select count(*) from torrents where contenttype='undefined';
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0,08 sec)

mysql> select contenttype from torrents;
+-------------+
| contenttype |
+-------------+
| audio       |
| video       |
| pictures    |
| video       |
| video       |
| video       |
| books       |
| video       |
| video       |
| video       |
| video       |
| pictures    |
| books       |
| video       |
| video       |
| video       |
| audio       |
| application |
| application |
| application |
+-------------+
20 rows in set (0,06 sec)

Причина в том, что в функции spider::checkTorrent() код ожидает что поле будет называться "contentType", но при проверке БД оно называется "contenttype".
Если торрент приходит из сети, то он проходит через функцию spider::insertTorrentToDB(), где починяется кейс полей, а при проверке БД нет.

[email protected]

Увеличение потребления CPU с размером базы.

Настроил вчера на домашей файлопомойке программу чтобы молотила. Экспериментальным путем подобрал параметры так чтобы скачки CPU были не очень частые и не доходили до 100% (это как бы не единственная задача которой занимается комп). Через некоторое время увидел что они слишком близко к 100% и подкорректировал показатели. Итого нагрузка на CPU была 30% со скачками до 60-65%. Но это вчера при ~20000 торрентов.

Сегодня я обнаружил большую нагрузку на CPU процессом searchd. Сегодня уже нагрузка только от searchd составляет от 40 до 80 процентов CPU, а при наличии других процессов график постоянно упирается в 100% нагрузки а иногда и задерживается там на несколько секунд.

Данные из проги:
0.23.0
p2p поиск - да
пиров - 10
сервер репликации - да
репликация - да
скорость прохода - 70
узлов - 50
пакетов - 340

352,27Тб данных
122976 торрентов
3588479 файлов

Данные ПК:
Размер папки с базой: 591 Мб
CPU: Intel Core2Duo E8400
ОЗУ: 6Гб (-1 на рамдиск)
Windows 7 Pro x64

A JavaScript error occurred in the main process

System:

Distributor ID:	Ubuntu
Release:	17.10
Codename:	artful
Kernel: 4.13.0-32-generic
Window Manager: xfwm4
Desktop environment: xfce

App version: 0.3.0

Error:

Uncaught Exception:
TypeError: Error processing argument at index 0, conversion failure from resources/icons/512x512.png
    at startSphinx (/tmp/.mount_rats-s6XEivH/app/resources/app.asar/app/background.js:906:12)
    at Socket.sphinx.stdout.on.data (/tmp/.mount_rats-s6XEivH/app/resources/app.asar/app/background.js:873:21)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at readableAddChunk (_stream_readable.js:178:18)
    at Socket.Readable.push (_stream_readable.js:136:10)
    at Pipe.onread (net.js:560:20)

Странные торренты в поиске

По запросу "приключений"

2018-07-23 17-09-36

Выводит странные торренты

NaN undefined (undefined files)
Планета приключений/1-2. Планета приключений (пер. Тишинин).fb2
Планета приключений/1-4. Планета приключений.fb2

NaN undefined (undefined files)
Берндорф Ганс, Букар Робер - (В мире приключений) Сети шпионажа [Сборник].fb2

NaN undefined (undefined files)
2002 - Форева/09 - Жажда приключений.mp3
2004 - Живой и невридимый/12 - Жажда Приключений.mp3
2002 - Форева/09 - Жажда приключений.mp3

magnet ссылка у всех magnet:?xt=urn:btih:undefined

При попытке кликнуть на такой торрент, приложение крэшится
Вот что в логах

/home/coder/workspace/rats-search/src/background/api.js:128
		if(hash.length != 40)
		        ^

TypeError: Cannot read property 'length' of null
    at onTorrent (/home/coder/workspace/rats-search/src/background/api.js:128:11)
    at Socket.args (/home/coder/workspace/rats-search/src/background/api.js:76:9)
    at emitThree (events.js:136:13)
    at Socket.emit (events.js:217:7)
    at /home/coder/workspace/rats-search/node_modules/socket.io/lib/socket.js:527:12
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)

Из базы данных вот что выяснил:

mysql> select * from files where MATCH('приключений') limit 1;
+---------+---------+---------------------------------------------------------------------------------------------------------------+------------------------------------------+
| id      | size    | path                                                                                                          | hash                                     |
+---------+---------+---------------------------------------------------------------------------------------------------------------+------------------------------------------+
| 2414876 | 1409369 | Планета приключений/1-2. Планета приключений (пер. Тишинин).fb2                                               | 12c0cfd6e2bad8ba116c883d48ca0ca5f0bf3f14 |
+---------+---------+---------------------------------------------------------------------------------------------------------------+------------------------------------------+
1 row in set (0,02 sec)

mysql> select * from torrents where hash='12c0cfd6e2bad8ba116c883d48ca0ca5f0bf3f14' limit 1;
Empty set (0,02 sec)

Я так понимаю, что после выполнения операции "CLEAN TORRENTS" сложилась такая ситуация, что торрент удалён, а файлы от него - нет.

Проблема с запуском

Имя ОС Майкрософт Windows 10 для образовательных учреждений
Версия 10.0.16299 Сборка 16299
Изготовитель ОС Microsoft Corporation
Тип Компьютер на базе x64
Процессор Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz, 3301 МГц, ядер: 4, логических процессоров: 4
Версия BIOS American Megatrends Inc. P1.40, 18.02.2011
Изготовитель основной платы ASRock
Установленная оперативная память (RAM) 10,0 ГБ
Полный объем физической памяти 8,99 ГБ
Доступно физической памяти 6,20 ГБ
Всего виртуальной памяти 10,4 ГБ
Доступно виртуальной памяти 7,23 ГБ
Размер файла подкачки 1,38 ГБ

Предварительная фильтрация торрентов

Предложение, запилить предварительную фильтрацию торрентов, чтобы можно было настроить запрет на индексацию торрентов меньше определенного размера, или по типу содержимого.

Поясняю, у меня сейчас в базе ~300k торрентов, при этом меня, в общем-то, не интересует ничего кроме видео, плюс навряд ли интересны торренты размером меньше 1,37ГБ

Посмотрел содержимое базы, там 70% торрентов меньше 1ГБ, а если по файлам, так думаю вообще. Очень много каких-то PDF, стрёмных книжек, при том размер базы уже переваливает за 1ГБ, страшно становится!

Есть много торрентов с японским и корейским названием, не так, чтобы очень, но процентов 5-10 есть. Их вообще не вижу смысла индексировать.

Предварительная фильтрация могла бы решить массу проблем.
Я готов взяться за реализацию, не без подсказок, конечно.

Фильтрация в закладке "TOP"

В обновлении удачная идея сделать закладки.
Только почему нет возможности выбрать, например видео за неделю?
Можно только выбирать либо видео, либо за неделю.

И текущие выбранные нужно выделить контрастнее или добавить подчеркивание другим цветом предлагал уже кто-то.

Словари , Темы

что могу

  1. Привести стили в порядок
  2. Сделать отдельный механизм тем (любой кто умеет верстать сможет сделать свою собственную тему )
  3. Сделать словари, запилю английский и русский , ну и механизм загрузки новых языков

ну и в целом могу помогать с фиксами, я б еще лендинг презентационный сделал для народа

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

Не добавляются торренты

За время работы был найден только один торрент. Порты из вкладки config(4445; 4446) на роутере проброшены, однако в файле sphinx.conf указаны другие порты(9312; 9306), нужно ли их пробрасывать?

./rats-search-0.9.0-x86_64.AppImag
installed: X-AppImage-BuildId=5f4474f0-1db8-11a8-0dc9-2d8caa32576f image: X-AppImage-BuildId=5f4474f0-1db8-11a8-0dc9-2d8caa32576f
Rats 0.9.0
Platform: linux
Arch: x64
OS Release: 4.12.12-gentoo
CPU: Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz
CPU Logic cores: 4
Total memory: 3610.97 MB
Free memory: 373.86 MB
Sphinx Path: /tmp/.mount_rats-sr1jikN/app/searchd
listening udp tracker respose on 0.0.0.0:4446
writed sphinx config to /home/USER/.config/Rats on The Boat
db path: /home/USER/.config/Rats on The Boat
sphinx: [Fri Mar 2 16:37:57.185 2018] [10984] using config file '/home/USER/.config/Rats on The Boat/sphinx.conf'...

sphinx: listening on all interfaces, port=9312
listening on all interfaces, port=9306

sphinx: Manticore 2.6.1 a7fa71e@180126 release
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2018, Manticore Software LTD (http://manticoresearch.com)

precaching index 'torrents'

sphinx: precaching index 'files'

sphinx: WARNING: index 'statistic': no fields configured (use rt_field directive) - NOT SERVING
binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.001

sphinx: binlog: index torrents: recovered from tid 0 to tid 3
binlog: index files: recovered from tid 0 to tid 1
binlog: replay stats: 2 rows in 2 commits; 2 updates, 0 reconfigure; 2 indexes
binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.001; 0.0 MB in 0.000 sec
binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.002

sphinx: binlog: replay stats: 0 rows in 0 commits; 0 updates, 0 reconfigure; 0 indexes
binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.002; 0.0 MB in 0.000 sec
binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.003
binlog: replay stats: 0 rows in 0 commits; 0 updates, 0 reconfigure; 0 indexes
binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.003; 0.0 MB in 0.000 sec
binlog: finished replaying total 3 in 0.000 sec

sphinx: accepting connections

catched sphinx start
listen p2p on 4445 port
Listen DHT protocol on 0.0.0.0:4445
Checking for update
sphinx: prereading 2 indexes
prereaded 2 indexes in 0.000 sec

p2p stun ignore my address [Внешний адрес провайдера]
p2p upnp ignore my address [Адрес моего роутера в локальной сети провайдера]
Update for version 0.9.0 is not available (latest version: 0.9.0, downgrade is disallowed.

query.log

[Fri Mar 2 16:15:38.087 2018] 0.009 sec 0.009 sec [ext2/0/ext 0 (0,20)] [torrents]
[Fri Mar 2 16:15:38.093 2018] 0.000 sec 0.000 sec [ext2/0/ext 0 (0,20)] [files]
[Fri Mar 2 16:15:39.041 2018] 0.000 sec 0.000 sec [ext2/0/ext 0 (0,20)] [torrents]
[Fri Mar 2 16:15:39.042 2018] 0.001 sec 0.001 sec [ext2/0/ext 0 (0,10)] [torrents]
[Fri Mar 2 16:15:39.044 2018] 0.000 sec 0.000 sec [ext2/0/ext 0 (0,20)] [files]
[Fri Mar 2 16:16:12.441 2018] 0.007 sec 0.007 sec [ext2/0/ext 0 (0,20)] [torrents]
[Fri Mar 2 16:16:12.452 2018] 0.000 sec 0.000 sec [ext2/0/ext 0 (0,20)] [files]
[Fri Mar 2 16:16:13.376 2018] 0.000 sec 0.000 sec [ext2/0/ext 0 (0,20)] [files]
[Fri Mar 2 16:16:22.489 2018] 0.000 sec 0.000 sec [ext2/0/ext 0 (0,20)] [files]
[Fri Mar 2 16:22:57.628 2018] 0.000 sec 0.000 sec [ext2/1/ext 0 (0,20)] [files]
[Fri Mar 2 16:22:57.635 2018] 0.000 sec 0.000 sec [ext2/1/ext 0 (0,20)] [torrents]
[Fri Mar 2 16:22:57.635 2018] 0.000 sec 0.000 sec [ext2/1/ext 0 (0,20)] [files]
[Fri Mar 2 16:22:57.638 2018] 0.000 sec 0.000 sec [ext2/1/ext 1 (0,20)] [torrents]
[Fri Mar 2 16:22:57.902 2018] 0.000 sec 0.000 sec [ext2/1/ext 1 (0,20)] [torrents]
[Fri Mar 2 16:29:08.329 2018] 0.010 sec 0.010 sec [ext2/0/ext 1 (0,20)] [torrents]
[Fri Mar 2 16:29:08.359 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [files]
[Fri Mar 2 16:29:09.315 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [torrents]
[Fri Mar 2 16:29:09.316 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,10)] [torrents]
[Fri Mar 2 16:29:09.321 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [files]
[Fri Mar 2 16:31:07.972 2018] 0.000 sec 0.000 sec [ext2/2/ext 1 (0,20)] [torrents]
[Fri Mar 2 16:31:07.990 2018] 0.000 sec 0.000 sec [ext2/3/ext 0 (0,15)] [torrents]
[Fri Mar 2 16:31:07.991 2018] 0.000 sec 0.000 sec [ext2/3/ext 0 (0,15)] [torrents]
[Fri Mar 2 16:31:07.992 2018] 0.000 sec 0.000 sec [ext2/3/ext 0 (0,15)] [torrents]
[Fri Mar 2 16:31:11.583 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [torrents]
[Fri Mar 2 16:31:11.583 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,10)] [torrents]
[Fri Mar 2 16:31:11.587 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [files]
[Fri Mar 2 16:37:57.728 2018] 0.010 sec 0.010 sec [ext2/0/ext 1 (0,20)] [torrents]
[Fri Mar 2 16:37:57.760 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [files]
[Fri Mar 2 16:37:58.733 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [files]
[Fri Mar 2 16:42:01.106 2018] 0.000 sec 0.000 sec [ext2/0/ext 1 (0,20)] [files]

searchd.log

[Fri Mar 2 16:15:37.499 2018] [8186] listening on all interfaces, port=9312
[Fri Mar 2 16:15:37.499 2018] [8186] listening on all interfaces, port=9306
[Fri Mar 2 16:15:37.511 2018] [8186] WARNING: index 'statistic': no fields configured (use rt_field directive) - NOT SERVING
[Fri Mar 2 16:15:37.511 2018] [8186] accepting connections
[Fri Mar 2 16:15:37.512 2018] [8198] prereading 2 indexes
[Fri Mar 2 16:15:37.512 2018] [8198] prereaded 2 indexes in 0.000 sec
[Fri Mar 2 16:16:06.739 2018] [8186] caught SIGTERM, shutting down
[Fri Mar 2 16:16:06.765 2018] [8186] shutdown complete
[Fri Mar 2 16:16:11.870 2018] [8314] listening on all interfaces, port=9312
[Fri Mar 2 16:16:11.870 2018] [8314] listening on all interfaces, port=9306
[Fri Mar 2 16:16:11.881 2018] [8314] WARNING: index 'statistic': no fields configured (use rt_field directive) - NOT SERVING
[Fri Mar 2 16:16:11.881 2018] [8314] accepting connections
[Fri Mar 2 16:16:11.881 2018] [8326] prereading 2 indexes
[Fri Mar 2 16:16:11.881 2018] [8326] prereaded 2 indexes in 0.000 sec
[Fri Mar 2 16:24:57.531 2018] [9383] listening on all interfaces, port=9312
[Fri Mar 2 16:24:57.531 2018] [9383] listening on all interfaces, port=9306
[Fri Mar 2 16:24:57.542 2018] [9383] WARNING: index 'statistic': no fields configured (use rt_field directive) - NOT SERVING
[Fri Mar 2 16:24:57.542 2018] [9383] binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.001
[Fri Mar 2 16:24:57.544 2018] [9383] binlog: index torrents: recovered from tid 0 to tid 3
[Fri Mar 2 16:24:57.544 2018] [9383] binlog: index files: recovered from tid 0 to tid 1
[Fri Mar 2 16:24:57.544 2018] [9383] binlog: replay stats: 2 rows in 2 commits; 2 updates, 0 reconfigure; 2 indexes
[Fri Mar 2 16:24:57.544 2018] [9383] binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.001; 0.0 MB in 0.001 sec
[Fri Mar 2 16:24:57.544 2018] [9383] binlog: finished replaying total 1 in 0.001 sec
[Fri Mar 2 16:24:57.544 2018] [9383] accepting connections
[Fri Mar 2 16:24:57.544 2018] [9395] prereading 2 indexes
[Fri Mar 2 16:24:57.544 2018] [9395] prereaded 2 indexes in 0.000 sec
[Fri Mar 2 16:29:07.774 2018] [9878] listening on all interfaces, port=9312
[Fri Mar 2 16:29:07.774 2018] [9878] listening on all interfaces, port=9306
[Fri Mar 2 16:29:07.785 2018] [9878] WARNING: index 'statistic': no fields configured (use rt_field directive) - NOT SERVING
[Fri Mar 2 16:29:07.785 2018] [9878] binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.001
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: index torrents: recovered from tid 0 to tid 3
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: index files: recovered from tid 0 to tid 1
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: replay stats: 2 rows in 2 commits; 2 updates, 0 reconfigure; 2 indexes
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.001; 0.0 MB in 0.001 sec
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.002
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: replay stats: 0 rows in 0 commits; 0 updates, 0 reconfigure; 0 indexes
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.002; 0.0 MB in 0.000 sec
[Fri Mar 2 16:29:07.787 2018] [9878] binlog: finished replaying total 2 in 0.001 sec
[Fri Mar 2 16:29:07.787 2018] [9878] accepting connections
[Fri Mar 2 16:29:07.787 2018] [9890] prereading 2 indexes
[Fri Mar 2 16:29:07.787 2018] [9890] prereaded 2 indexes in 0.000 sec
[Fri Mar 2 16:37:57.191 2018] [10984] listening on all interfaces, port=9312
[Fri Mar 2 16:37:57.191 2018] [10984] listening on all interfaces, port=9306
[Fri Mar 2 16:37:57.202 2018] [10984] WARNING: index 'statistic': no fields configured (use rt_field directive) - NOT SERVING
[Fri Mar 2 16:37:57.202 2018] [10984] binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.001
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: index torrents: recovered from tid 0 to tid 3
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: index files: recovered from tid 0 to tid 1
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: replay stats: 2 rows in 2 commits; 2 updates, 0 reconfigure; 2 indexes
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.001; 0.0 MB in 0.000 sec
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.002
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: replay stats: 0 rows in 0 commits; 0 updates, 0 reconfigure; 0 indexes
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.002; 0.0 MB in 0.000 sec
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: replaying log /home/USER/.config/Rats on The Boat/binlog.003
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: replay stats: 0 rows in 0 commits; 0 updates, 0 reconfigure; 0 indexes
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: finished replaying /home/USER/.config/Rats on The Boat/binlog.003; 0.0 MB in 0.000 sec
[Fri Mar 2 16:37:57.203 2018] [10984] binlog: finished replaying total 3 in 0.000 sec
[Fri Mar 2 16:37:57.204 2018] [10984] accepting connections
[Fri Mar 2 16:37:57.205 2018] [10996] prereading 2 indexes
[Fri Mar 2 16:37:57.205 2018] [10996] prereaded 2 indexes in 0.000 sec

sphinx.conf

  index torrents
  {
    type = rt
    path = /home/USER/.config/Rats on The Boat/database/torrents
    
    rt_attr_string = hash
    rt_attr_string = name
    rt_field = nameIndex
    rt_attr_bigint = size
    rt_attr_uint = files
    rt_attr_uint = piecelength
    rt_attr_timestamp = added
    rt_attr_string = ipv4
    rt_attr_uint = port
    rt_attr_string = contentType
    rt_attr_string = contentCategory
    rt_attr_uint = seeders
    rt_attr_uint = leechers
    rt_attr_uint = completed
    rt_attr_timestamp = trackersChecked
    rt_attr_uint = good
    rt_attr_uint = bad
  }

  index files
  {
      type = rt
      path = /home/USER/.config/Rats on The Boat/database/files
      
      rt_attr_string = path
      rt_field = pathIndex
    rt_attr_string = hash
    rt_attr_bigint = size
  }

  index statistic
  {
      type = rt
      path = /home/USER/.config/Rats on The Boat/database/statistic
      
    rt_attr_bigint = size
    rt_attr_bigint = files
    rt_attr_uint = torrents
  }

  searchd
  {
    listen      = 9312
    listen      = 9306:mysql41
    read_timeout    = 5
    max_children    = 30
    seamless_rotate   = 1
    preopen_indexes   = 1
    unlink_old    = 1
    workers     = threads # for RT to work
    pid_file    = /home/USER/.config/Rats on The Boat/searchd.pid
    log     = /home/USER/.config/Rats on The Boat/searchd.log
    query_log   = /home/USER/.config/Rats on The Boat/query.log
    binlog_path = /home/USER/.config/Rats on The Boat
  }

Problems displaying the settings section

System:

Distributor ID:	Ubuntu
Release:	17.10
Codename:	artful
Kernel: 4.13.0-32-generic
Window Manager: xfwm4
Desktop environment: xfce

App version: 0.3.0 AppImage

Screenshot:
selection_006

Перезапись файлов, которые не изменились

Собственно, всё в заголовке. Программа перезаписывает файлы конфигурации, даже если файл после перезаписи будет тем же самым.
Точно замечено за файлом %AppData%\Roaming\Rats on The Boat\rats.json (причём 3 раза за 10 минут) и за ~\Cookies-journal (он вообще пустой, но был перезаписан 4 раза).
Да и вообще, файловая активность очень уж активная:
image
Для HDD особого вреда от этого быть не должно, только замедление работы, если диск занят, а вот старые SSD от столь частых перезаписей страдают.

Craching of application in service mode

Application that runs as a service, crashes after a few hours.

OS information:

root@canis2:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial
root@canis2:~# uname -a
Linux canis2 4.4.0-122-generic #146-Ubuntu SMP Mon Apr 23 15:34:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@canis2:~# node --version
v7.10.1
root@canis2:~# npm --version
4.2.0

Standard output from application while crash:

replicate remote torrent Trinoline -Soundtrack Bonus  NOT INCLUDED
replicate remote torrent Пицца - 2 альбома (FLAC)
finded torrent Oruna, Maria - Puerto escondido [25748] (r1.1).epub  and add to database
buffer.js:805
        return this.hexWrite(string, offset, length);
                    ^
 
TypeError: Invalid hex string
    at Buffer.write (buffer.js:805:21)
    at scrapeTorrent (/home/canis/rats-search/src/background/bt/udp-tracker-request.js:61:12)
    at Socket.<anonymous> (/home/canis/rats-search/src/background/bt/udp-tracker-request.js:85:9)
    at emitTwo (events.js:106:13)
    at Socket.emit (events.js:194:7)
    at UDP.onMessage [as onmessage] (dgram.js:544:8)
 
npm ERR! Linux 4.4.0-122-generic
npm ERR! argv "/home/canis/.nvm/versions/node/v7.10.1/bin/node" "/home/canis/.nvm/versions/node/v7.10.1/bin/npm" "run" "server"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] server: `node src/background/server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] server script 'node src/background/server.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the rats-search package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node src/background/server.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs rats-search
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls rats-search
npm ERR! There is likely additional logging output above.
 
npm ERR! Please include the following file with any support request:
npm ERR!     /home/canis/.npm/_logs/2018-05-04T10_32_36_145Z-debug.log

/home/canis/.npm/_logs/2018-05-04T10_32_36_145Z-debug.log:

0 info it worked if it ends with ok
1 verbose cli [ '/home/canis/.nvm/versions/node/v7.10.1/bin/node',
1 verbose cli   '/home/canis/.nvm/versions/node/v7.10.1/bin/npm',
1 verbose cli   'run',
1 verbose cli   'server' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preserver', 'server', 'postserver' ]
5 info lifecycle [email protected]~preserver: [email protected]
6 silly lifecycle [email protected]~preserver: no script for preserver, continuing
7 info lifecycle [email protected]~server: [email protected]
8 verbose lifecycle [email protected]~server: unsafe-perm in lifecycle true
9 verbose lifecycle [email protected]~server: PATH: /home/canis/.nvm/versions/node/v7.10.1/lib/node_modules/npm/bin/node-gyp-bin:/home/canis/rats-search/node_modules/.bin:/home/canis/.nvm/versions/node/v7.10.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
10 verbose lifecycle [email protected]~server: CWD: /home/canis/rats-search
11 silly lifecycle [email protected]~server: Args: [ '-c', 'node src/background/server.js' ]
12 silly lifecycle [email protected]~server: Returned: code: 1  signal: null
13 info lifecycle [email protected]~server: Failed to exec server script
14 verbose stack Error: [email protected] server: `node src/background/server.js`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (/home/canis/.nvm/versions/node/v7.10.1/lib/node_modules/npm/lib/utils/lifecycle.js:279:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:194:7)
14 verbose stack     at ChildProcess.<anonymous> (/home/canis/.nvm/versions/node/v7.10.1/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:194:7)
14 verbose stack     at maybeClose (internal/child_process.js:899:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid [email protected]
16 verbose cwd /home/canis/rats-search
17 error Linux 4.4.0-122-generic
18 error argv "/home/canis/.nvm/versions/node/v7.10.1/bin/node" "/home/canis/.nvm/versions/node/v7.10.1/bin/npm" "run" "server"
19 error node v7.10.1
20 error npm  v4.2.0
21 error code ELIFECYCLE
22 error errno 1
23 error [email protected] server: `node src/background/server.js`
23 error Exit status 1
24 error Failed at the [email protected] server script 'node src/background/server.js'.
24 error Make sure you have the latest version of node.js and npm installed.
24 error If you do, this is most likely a problem with the rats-search package,
24 error not with npm itself.
24 error Tell the author that this fails on your system:
24 error     node src/background/server.js
24 error You can get information on how to open an issue for this project with:
24 error     npm bugs rats-search
24 error Or if that isn't available, you can get their info via:
24 error     npm owner ls rats-search
24 error There is likely additional logging output above.
25 verbose exit [ 1, true ]

Странно выглядит не в полном размере

Ubuntu 16.04.
Запускается в таком размере. При переключении кнопок FEED/TOP/DOWNLOAD/ACTIVITTY инонки на этих кнопках меняют своё положение относительно кнопки. Если развернуть на полный экран, то всё норм.
2018-07-10 23-57-01

Server installation issue

rats-search - v0.19.1
OS: Alpine
During the npm install there is an issue with prebuilt dependencies:

> prebuild-install || node-gyp rebuild
prebuild-install info begin Prebuild-install version 2.5.1
prebuild-install info looking for local prebuild @ prebuilds/bufferutil-v3.0.4-node-v57-linuxmusl-x64.tar.gz
prebuild-install info looking for cached prebuild @ /root/.npm/_prebuilds/https-github.com-websockets-bufferutil-releases-download-v3.0.4-bufferutil-v3.0.4-node-v57-linuxmusl-x64.tar.gz
prebuild-install http request GET https://github.com/websockets/bufferutil/releases/download/v3.0.4/bufferutil-v3.0.4-node-v57-linuxmusl-x64.tar.gz
prebuild-install http 404 https://github.com/websockets/bufferutil/releases/download/v3.0.4/bufferutil-v3.0.4-node-v57-linuxmusl-x64.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=8.9.3 runtime=node arch=x64 platform=linux)

Perhaps links have changed?
WARNs with some dependencies:

npm WARN lifecycle [email protected]~postinstall: cannot run in wd %s %s (wd=%s) [email protected] electron-builder install-app-deps /rats-search
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/app-builder-bin-win):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"win32","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/app-builder-bin-mac):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/7zip-bin-win):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"win32","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/7zip-bin-mac):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm run server log:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'server' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preserver', 'server', 'postserver' ]
5 info lifecycle [email protected]~preserver: [email protected]
6 info lifecycle [email protected]~server: [email protected]
7 verbose lifecycle [email protected]~server: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~server: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/rats-s
earch/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9 verbose lifecycle [email protected]~server: CWD: /rats-search
10 silly lifecycle [email protected]~server: Args: [ '-c', 'node src/background/server.js' ]
11 silly lifecycle [email protected]~server: Returned: code: 1  signal: null
12 info lifecycle [email protected]~server: Failed to exec server script
13 verbose stack Error: [email protected] server: `node src/background/server.js`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/
index.js:280:16)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at EventEmitter.emit (events.js:214:7)
13 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/
lib/spawn.js:55:14)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at ChildProcess.emit (events.js:214:7)
13 verbose stack     at maybeClose (internal/child_process.js:925:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid [email protected]
15 verbose cwd /rats-search
16 verbose Linux 4.4.111-boot2docker
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "server"
18 verbose node v8.9.3
19 verbose npm  v5.5.1
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] server: `node src/background/server.js`
22 error Exit status 1
23 error Failed at the [email protected] server script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

ssh error: Server unexpectedly closed network connection

Программа пересатала искать новые торренты.
Вывод консоли:

Rats 0.23.0
Platform: linux
Arch: x64
OS Release: 4.13.0-45-generic
CPU: Intel(R) Pentium(R) CPU 2020M @ 2.40GHz
CPU Logic cores: 2
Total memory: 5798.11 MB
Free memory: 2625.70 MB
listening udp tracker respose on 0.0.0.0:4446
Sphinx Path: /tmp/.mount_rats-slQLYAv/app/x64/searchd
writed sphinx config to /home/coder/.config/Rats on The Boat
db path: /home/coder/.config/Rats on The Boat
sphinx: [Thu Jul 12 08:36:46.871 2018] [31892] using config file '/home/coder/.config/Rats on The Boat/sphinx.conf'...

sphinx: listening on all interfaces, port=9312

sphinx: listening on all interfaces, port=9306

sphinx: Manticore 2.6.1 a7fa71e@180126 release
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2018, Manticore Software LTD (http://manticoresearch.com)

precaching index 'torrents'

sphinx: precaching index 'files'

sphinx: precaching index 'version'

sphinx: precaching index 'store'

sphinx: precaching index 'feed'

sphinx: accepting connections

catched sphinx start
sphinx: prereading 5 indexes
prereaded 5 indexes in 0.000 sec

db version 4
db patch done
ignore local address 192.168.0.107
ignore local address 192.168.32.134
listen p2p on 4445 port
connect p2p store...
loaded 2 peers
p2p replication server enabled
replication client is enabled
Checking for update
close peer connection { address: '5.128.183.119', port: 4445 }
close peer connection { address: '128.75.92.249', port: 4445 }
store db index 96
lodead feed
restore downloading sessions
restore download session: ������ ������. ��� ���o��.pdf
download magnet:?xt=urn:btih:7c5e32074d10fbf850bdb90a3421bc481d1aef39
restore options
Listen DHT protocol on 0.0.0.0:4445
p2p stun ignore my address 78.140.201.150
loaded 2 peers from bootstrap
loaded peers map from bootstrap
close peer connection { address: '46.101.170.140', port: 44331 }
close peer connection { address: '46.101.170.140', port: 58929 }
close peer connection { address: '128.75.92.249', port: 4445 }
close peer connection { address: '5.128.183.119', port: 4445 }
close peer connection { address: '46.101.170.140', port: 36778 }
close peer connection { address: '46.101.170.140', port: 38022 }
loaded 2 peers from bootstrap
loaded peers map from bootstrap
close peer connection { address: '178.19.244.89', port: 4445 }
close peer connection { address: '46.101.170.140', port: 58929 }
close peer connection { address: '46.101.170.140', port: 44331 }
close peer connection { address: '46.101.170.140', port: 19296 }
close peer connection { address: '95.161.155.218', port: 4445 }
close peer connection { address: '188.68.151.174', port: 4445 }
close peer connection { address: '128.75.92.249', port: 4445 }
close peer connection { address: '87.254.138.152', port: 4445 }
close peer connection { address: '5.128.183.119', port: 4445 }
close peer connection { address: '46.101.170.140', port: 56576 }
close peer connection { address: '46.101.170.140', port: 36778 }
p2p upnp ignore my address 95.220.201.180
close peer connection { address: '46.101.170.140', port: 64274 }
close peer connection { address: '46.101.170.140', port: 38022 }
close peer connection { address: '46.101.170.140', port: 40764 }
close peer connection { address: '46.216.2.117', port: 4445 }
close peer connection { address: '46.101.170.140', port: 21169 }
Update for version 0.23.0 is not available (latest version: 0.23.0, downgrade is disallowed).
start downloading 7c5e32074d10fbf850bdb90a3421bc481d1aef39 to /home/coder/Downloads
download done 7c5e32074d10fbf850bdb90a3421bc481d1aef39
tcp p2p port is unreachable - try ssh tunnel
ssh error: Connecting to 46.101.170.140 port 22

ssh error: We claim version: SSH-2.0-PuTTY_Release_0.70

ssh error: Server version: SSH-2.0-OpenSSH_7.6
Using SSH protocol version 2

finded torrent Бонк Н.А.,Левина И.И.,Бонк И.А.-Английский шаг за шагом.Часть 1-(Бонк Н.А.Английский язык)-2015  and add to database
finded torrent The.100.S05E02.720p.HEVC.x265-MeGusta  and add to database
ssh error: Server unexpectedly closed network connection
FATAL ERROR: Server unexpectedly closed network connection

ssh closed with code 1 and signal null
close peer connection { address: '95.110.15.99', port: 4445 }
close peer connection { address: '37.147.177.9', port: 4445 }
finded torrent [Tushy] Marley Brinx - After The Shoot (26.05.17) (2k).mp4  and add to database
close peer connection { address: '95.79.148.249', port: 4445 }
close peer connection { address: '91.194.253.101', port: 4445 }
close peer connection { address: '51.38.154.25', port: 4445 }
close peer connection { address: '46.233.246.37', port: 4445 }
close peer connection { address: '91.243.8.247', port: 4445 }
close peer connection { address: '94.180.44.45', port: 49667 }
close peer connection { address: '5.189.98.89', port: 4445 }
close peer connection { address: '80.65.24.81', port: 4445 }
close peer connection { address: '88.215.125.4', port: 4445 }
close peer connection { address: '5.145.211.189', port: 4445 }
close peer connection { address: '92.101.95.187', port: 4445 }
close peer connection { address: '178.205.204.164', port: 4445 }
close peer connection { address: '178.155.4.240', port: 3479 }
close peer connection { address: '46.0.53.71', port: 4445 }
close peer connection { address: '86.57.153.69', port: 4445 }
close peer connection { address: '31.132.179.230', port: 4109 }
close peer connection { address: '37.208.44.54', port: 62842 }
close peer connection { address: '95.79.102.57', port: 4445 }
close peer connection { address: '46.242.13.118', port: 8844 }
close peer connection { address: '178.155.4.218', port: 28713 }
close peer connection { address: '176.214.5.8', port: 4445 }
close peer connection { address: '176.51.206.120', port: 4445 }
close peer connection { address: '31.135.40.77', port: 1029 }
close peer connection { address: '94.19.217.242', port: 4445 }
close peer connection { address: '37.232.162.62', port: 4445 }
close peer connection { address: '178.206.60.140', port: 4445 }
close peer connection { address: '46.29.234.106', port: 4445 }
close peer connection { address: '83.69.30.25', port: 36743 }
close peer connection { address: '77.106.107.151', port: 4445 }
close peer connection { address: '95.79.253.210', port: 4445 }
close peer connection { address: '176.99.232.70', port: 4445 }
close peer connection { address: '109.174.6.117', port: 4445 }
close peer connection { address: '188.226.88.111', port: 4445 }
close peer connection { address: '78.85.5.43', port: 8649 }
close peer connection { address: '37.49.182.252', port: 4445 }
close peer connection { address: '85.114.187.156', port: 4445 }
close peer connection { address: '178.155.4.243', port: 4944 }
close peer connection { address: '73.12.217.216', port: 4445 }
close peer connection { address: '188.168.237.245', port: 4445 }
close peer connection { address: '62.182.72.69', port: 4445 }
close peer connection { address: '88.210.26.23', port: 4445 }
close peer connection { address: '134.17.155.29', port: 4445 }
close peer connection { address: '188.235.156.245', port: 4445 }
close peer connection { address: '37.114.30.36', port: 4445 }
close peer connection { address: '109.106.142.26', port: 2494 }
close peer connection { address: '95.30.223.62', port: 4445 }
close peer connection { address: '46.29.233.159', port: 4445 }
close peer connection { address: '95.84.148.238', port: 4445 }
close peer connection { address: '92.244.238.242', port: 1561 }
close peer connection { address: '46.163.165.251', port: 1038 }
close peer connection { address: '178.155.4.53', port: 2333 }
close peer connection { address: '217.28.76.166', port: 4445 }
close peer connection { address: '5.140.84.250', port: 2060 }
close peer connection { address: '90.155.217.186', port: 4445 }
close peer connection { address: '95.27.46.100', port: 11268 }
close peer connection { address: '89.255.68.226', port: 4445 }
close peer connection { address: '212.164.228.220', port: 4445 }
close peer connection { address: '176.114.153.69', port: 9339 }
close peer connection { address: '136.169.167.138', port: 4445 }
close peer connection { address: '5.35.36.110', port: 4445 }
close peer connection { address: '91.211.239.200', port: 4445 }
close peer connection { address: '94.41.56.172', port: 4445 }
close peer connection { address: '37.229.252.156', port: 4445 }
close peer connection { address: '46.187.19.204', port: 4445 }
close peer connection { address: '109.173.92.117', port: 4445 }
close peer connection { address: '91.123.21.198', port: 4445 }
close peer connection { address: '178.124.222.120', port: 4445 }
close peer connection { address: '188.19.37.170', port: 1260 }
close peer connection { address: '5.18.235.153', port: 16812 }
close peer connection { address: '178.155.4.137', port: 2852 }
close peer connection { address: '46.200.2.128', port: 14707 }
close peer connection { address: '176.99.72.123', port: 56654 }
close peer connection { address: '77.37.143.151', port: 4445 }
close peer connection { address: '2.60.111.134', port: 4445 }
close peer connection { address: '178.140.6.134', port: 4445 }
close peer connection { address: '89.250.28.9', port: 4445 }
close peer connection { address: '31.162.1.108', port: 3155 }
close peer connection { address: '178.218.102.30', port: 14979 }
close peer connection { address: '85.232.206.103', port: 4445 }
close peer connection { address: '79.136.163.92', port: 4445 }
close peer connection { address: '95.105.54.87', port: 4445 }
close peer connection { address: '176.196.32.201', port: 4445 }
close peer connection { address: '94.188.102.92', port: 4445 }
close peer connection { address: '95.154.172.217', port: 4445 }
close peer connection { address: '46.146.164.120', port: 23897 }
close peer connection { address: '93.100.9.163', port: 4445 }
close peer connection { address: '178.205.13.241', port: 4445 }
close peer connection { address: '79.173.112.91', port: 4445 }
close peer connection { address: '178.95.198.63', port: 18245 }
close peer connection { address: '95.37.239.88', port: 3001 }
close peer connection { address: '109.252.110.186', port: 8641 }
close peer connection { address: '88.210.24.179', port: 4445 }
close peer connection { address: '176.100.75.2', port: 22315 }
close peer connection { address: '213.80.193.64', port: 4445 }
close peer connection { address: '82.151.123.47', port: 16008 }
close peer connection { address: '5.137.148.135', port: 4445 }
close peer connection { address: '46.216.23.172', port: 4445 }
close peer connection { address: '5.166.144.220', port: 4445 }
close peer connection { address: '176.212.183.211', port: 4445 }
close peer connection { address: '91.246.113.181', port: 31561 }
finded torrent PinupFiles.14.09.12.Lana.Kendrick.Car.Wash.3.XXX.720p.MP4-YAPG[rarbg]  and add to database
^[[5~finded torrent Gotti.2018.HDRip.XviD.AC3-EVO  and add to database
finded torrent Tom Clancy's Ghost Recon Wildlands War Within The Cartel.mp4  and add to database
finded torrent Gotti.2018.HDRip.XviD.AC3-EVO  and add to database
finded torrent Norah Jones  and add to database

Ошибка при старте приложения в отсутствии интернета и плохое ее поведение.

Ubuntu 16.04
Architecture: amd64
CurrentDesktop: Unity
При старте приложения в отсутствии интернета, появляется диалог с ошибкой и кнопкой "ОК"

A JavaScript error occurred in the main process
Uncaught Exception:
Error: getaddrinfo EAI_AGAIN
at Object._errnoException (util.js:1024:11)
at errnoException (dns.js:55:15)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)

Здесь есть две проблемы:

  1. Если НЕ нажать ОК, а переключиться на другое приложение и затем вернуться, то диалог пропадает и вернуться на него уже невозможно. При этом, само приложение зависает и не реагирует на попытки выйти из него.
  2. Если нажать ОК, то приложение вроде бы запускается, но перестаёт искать новые торренты, даже если интернет затем появился. Это выражается в том, что обычно там где выводится X TB data Y torrents Z files числа время от времени увеличиваются, это сопровождается выводом в консоль сообщений вроде

replicate remote torrent ..........
finded torrent .........

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

Вывод консоли при старте в отсутствие интернета:

Rats 0.23.0
Platform: linux
Arch: x64
OS Release: 4.13.0-45-generic
CPU: Intel(R) Pentium(R) CPU 2020M @ 2.40GHz
CPU Logic cores: 2
Total memory: 5798.11 MB
Free memory: 2517.07 MB
listening udp tracker respose on 0.0.0.0:4446
Sphinx Path: /tmp/.mount_rats-swcDtJF/app/x64/searchd
writed sphinx config to /home/coder/.config/Rats on The Boat
db path: /home/coder/.config/Rats on The Boat
sphinx: [Wed Jul 11 17:59:44.179 2018] [5211] using config file '/home/coder/.config/Rats on The Boat/sphinx.conf'...

sphinx: listening on all interfaces, port=9312

sphinx: listening on all interfaces, port=9306

sphinx: Manticore 2.6.1 a7fa71e@180126 release
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2018, Manticore Software LTD (http://manticoresearch.com)

precaching index 'torrents'

sphinx: precaching index 'files'

sphinx: precaching index 'version'

sphinx: precaching index 'store'

sphinx: precaching index 'feed'

sphinx: accepting connections

catched sphinx start
sphinx: prereading 5 indexes
prereaded 5 indexes in 0.000 sec

db version 4
db patch done
listen p2p on 4445 port
connect p2p store...
loaded 3 peers
p2p replication server enabled
replication client is enabled
Checking for update
close peer connection { address: '87.244.158.223', port: 4445 }
close peer connection { address: '109.187.6.61', port: 4445 }
close peer connection { address: '5.128.183.119', port: 4445 }
https://api.myjson.com/bins/1e5rmh error: getaddrinfo EAI_AGAIN api.myjson.com:443
https://jsonblob.com/api/jsonBlob/013a4415-3533-11e8-8290-a901f3cf34aa error: getaddrinfo EAI_AGAIN jsonblob.com:443
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
store db index 96
lodead feed
restore downloading sessions
restore download session: ������ ������. ��� ���o��.pdf
download magnet:?xt=urn:btih:7c5e32074d10fbf850bdb90a3421bc481d1aef39
restore options
Listen DHT protocol on 0.0.0.0:4445
Error: Error: net::ERR_INTERNET_DISCONNECTED
    at CancellationToken.createPromise (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/builder-util-runtime/src/CancellationToken.ts:51:5)
    at ElectronHttpExecutor.doApiRequest (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/builder-util-runtime/src/httpExecutor.ts:81:30)
    at ElectronHttpExecutor.request (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/builder-util-runtime/src/httpExecutor.ts:73:17)
    at GitHubProvider.httpRequest (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/src/Provider.ts:26:26)
    at /tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/src/GitHubProvider.ts:38:41
    at Generator.next (<anonymous>)
From previous event:
    at GitHubProvider.getLatestVersion (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/out/GitHubProvider.js:167:7)
    at /tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:304:25
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at AppImageUpdater.getUpdateInfo (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:460:7)
    at /tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:308:35
    at Generator.next (<anonymous>)
From previous event:
    at AppImageUpdater.doCheckForUpdates (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:502:7)
    at /tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:279:25
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at AppImageUpdater._checkForUpdates (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:433:7)
    at AppImageUpdater.checkForUpdates (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:217:35)
    at v (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/app/webpack:/src/background/background.js:227:33)
    at h (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/app/webpack:/src/background/dbPatcher.js:208:9)
    at l.query (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/app/webpack:/src/background/dbPatcher.js:219:26)
    at Query.function.t [as _callback] (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/app/webpack:/src/background/mysql.js:35:3)
    at Query.Sequence.end (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/mysql/lib/protocol/sequences/Sequence.js:88:24)
    at Query._handleFinalResultPacket (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/mysql/lib/protocol/sequences/Query.js:139:8)
    at Query.EofPacket (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/mysql/lib/protocol/sequences/Query.js:123:8)
    at Protocol._parsePacket (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/mysql/lib/protocol/Protocol.js:279:23)
    at Parser.write (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/mysql/lib/protocol/Parser.js:76:12)
    at Protocol.write (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/mysql/lib/protocol/Protocol.js:39:16)
    at Socket.<anonymous> (/tmp/.mount_rats-swcDtJF/app/resources/app.asar/node_modules/mysql/lib/Connection.js:103:28)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at TCP.onread (net.js:594:20)
upnp server dont respond
upnp server dont respond
upnp server dont respond
spider closing...
save torrents downloads sessions
saving feed
closing p2p...
spider closed
sphinx closing...
sphinx: caught SIGTERM, shutting down

sphinx: rt: index torrents: ramchunk saved in 0.006 sec

sphinx: rt: index files: ramchunk saved in 0.148 sec

sphinx: shutdown complete

sphinx: precached 5 indexes in 0.069 sec

sphinx closed with code 0 and signal null

При старте, проверять что searchd запущен

Иногда, если приложение вылетает, его невозможно запустить заново.
Натыкался на такое в #52 , #45.
Так или иначе, бывает приложение закрывается. При повторном запуске, в логах это:

sphinx closed with code 1 and signal null
Дальше приложение висит, не может выйти но и не может показать интерфейс: при заходе на http://localhost:8095/ вижу белую страницу, если открыть код то там

<!DOCTYPE html><html><head><meta charset="utf-8"><title>Torrent Search</title></head><body><div id="mount-point"></div><script src="app.js"></script><script type="text/javascript" src="main.js"></script></body></html>

Я обнаружил, что при этом процесс searchd продолжает работать, принимает соединения и обрабатывает запросы.
Это лечится снятием процесса searchd
killall searchd
И повторным запуском rat-search

Я предполагаю, что при падении, rats-search не успевает закрыть searchd, но при старте ждёт нормального его старта. Я предположил, что searchd не может запуститься из-за EADDRINUSE. Ни подтверждения, ни опровержения в searchd.log я не нашёл, никаких записей за это время там нет.

Попытался запустить searchd вручную.

$ /home/coder/workspace/rats-search/imports/linux/x64/searchd --config /home/coder/workspace/rats-search/sphinx.conf --nodetach
Manticore 2.6.1 a7fa71e@180126 release
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2018, Manticore Software LTD (http://manticoresearch.com)

using config file '/home/coder/workspace/rats-search/sphinx.conf'...
listening on all interfaces, port=9312
listening on all interfaces, port=9306
precaching index 'torrents'
WARNING: index 'torrents': prealloc: failed to lock /home/coder/workspace/rats-search/database/torrents.lock: Resource temporarily unavailable; NOT SERVING
precaching index 'files'
WARNING: index 'files': prealloc: failed to lock /home/coder/workspace/rats-search/database/files.lock: Resource temporarily unavailable; NOT SERVING
precaching index 'version'
WARNING: index 'version': prealloc: failed to lock /home/coder/workspace/rats-search/database/version.lock: Resource temporarily unavailable; NOT SERVING
precaching index 'store'
WARNING: index 'store': prealloc: failed to lock /home/coder/workspace/rats-search/database/store.lock: Resource temporarily unavailable; NOT SERVING
precaching index 'feed'
WARNING: index 'feed': prealloc: failed to lock /home/coder/workspace/rats-search/database/feed.lock: Resource temporarily unavailable; NOT SERVING
FATAL: no valid indexes to serve
shutdown complete

Похоже, лучшее поведение в данной ситуации - не пытаться запускать searchd, если он уже запущен. Либо убивать старый и запускать новый.

debian 9 error

dpkg -i rats-search_0.21.1_amd64.deb
(Чтение базы данных … на данный момент установлено 340007 файлов и каталогов.)
Подготовка к распаковке rats-search_0.21.1_amd64.deb …
Распаковывается rats-search (0.21.1-391) …
dpkg: ошибка при обработке архива rats-search_0.21.1_amd64.deb (--install):
 ошибка создания жёсткой ссылки «./usr/share/icons/hicolor/19x19/apps/rats-search.png»: Неверная ссылка между устройствами

Linux x86

Зопели под линь 32 бита.

Предложения по интерфейсу

  1. После первого поиска очень далеко вниз уходит кнопка управления старт/пауза. Можно ли перенести и закрепить её сверху? И заодно информацию о количестве записей в БД.
  2. В разделе "ТОП" добавить возможность выбора, сколько выводить записей из каждой категории. К примеру ползунок от 5 до 30.
  3. В поиске выводить результаты по колонкам в виде таблицы с возможностью сортировки (название/дата/размер).
  4. Было бы неплохо увидеть хоть-какую статистику по количеству добавленных ссылок. Сколько за час/день/неделю. Сколько добавили другие участники р2р. На основании этих данных можно анализировать и выявлять проблемы с обработкой ссылок. Например я вижу что у меня скорость наполнения базы - 1 запись за 3-15 секунд. Возможно у меня что-то не так с настройками программы или роутера? Или такая скорость у всех?
  5. Вывести доступ к разделам (загрузки, настройки...) в виде кнопок. ГОТОВО
  6. По размеру файла в поиске делал отдельный пост.

Как всё это вижу я - прикладываю 2 варианта, минимальный (более мне удобный) и с большими кнопками.
min1
max1

advanced search - Size filter

Не совсем удобно работает фильтр по размеру файлов.
Нет возможности быстро отфильтровать файлы, например менее 50MB, такие как патчи, кряки... Приходится сначала в режиме Size type "размер GB" передвигать нижнюю границу, затем верхнюю границу, а потом переключаться в режим "размер 100GB", ловить правый ползунок и двигать его на максимум.

Server version build problems

ubuntu server 17.10
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]
npm WARN [email protected] requires a peer of @babel/core@^7.0.0 || ^7.0.0-rc || ^7.0.0-beta.41 but none was installed.
npm WARN @semantic-release/[email protected] requires a peer of semantic-release@>=13.3.0 <15.0.0 but none was installed.
npm WARN @semantic-release/[email protected] requires a peer of semantic-release@>=13.0.0 <16.0.0 but none was installed.
npm WARN @semantic-release/[email protected] requires a peer of semantic-release@>=13.3.0 <15.0.0 but none was installed.
npm WARN [email protected] requires a peer of ajv@^6.0.0 but none was installed.

compilation errors [ ModuleBuildError: Module build failed: Error: babel-loader ^8.0.0-beta.3 requires @babel/[email protected], but you appear to be using "7.0.0-beta.38". Either update your @babel/core version, or pin you babel-loader version to 8.0.0-beta.2
at Object. (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:79:13)
at next (native)
at step (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:3:221)
at _next (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:3:409)
at /home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:3:477
at Object. (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:3:97)
at Object._loader (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:148:18)
at Object.loader (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:36:18)
at Object. (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:31:12)
at runLoaders (/home/userName/down/rats-search/node_modules/webpack/lib/NormalModule.js:252:20)
at /home/userName/down/rats-search/node_modules/loader-runner/lib/LoaderRunner.js:364:11
at /home/userName/down/rats-search/node_modules/loader-runner/lib/LoaderRunner.js:230:18
at context.callback (/home/userName/down/rats-search/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
at loader.call.then.err (/home/userName/down/rats-search/node_modules/babel-loader/lib/index.js:31:103)
at runMicrotasksCallback (internal/process/next_tick.js:64:5)
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9) ]

debian 9 appimage issue

4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux


(rats-search:17296): Gtk-WARNING **: Theme parsing error: gtk.css:68:35: The style property GtkButton:child-displacement-x is deprecated and shouldn't be used anymore. It will be removed in a future version

(rats-search:17296): Gtk-WARNING **: Theme parsing error: gtk.css:69:35: The style property GtkButton:child-displacement-y is deprecated and shouldn't be used anymore. It will be removed in a future version

(rats-search:17296): Gtk-WARNING **: Theme parsing error: gtk.css:73:46: The style property GtkScrolledWindow:scrollbars-within-bevel is deprecated and shouldn't be used anymore. It will be removed in a future version
module.js:545
    throw err;
    ^

Error: Cannot find module '/tmp/.mount_rats-ssJ4aD7/resources/electron.asar/browser/init.js'
    at Function.Module._resolveFilename (module.js:543:15)
    at Function.Module._load (module.js:473:25)
    at Function.Module.runMain (module.js:683:10)
    at startup (bootstrap_node.js:196:16)
    at bootstrap_node.js:622:3

Segmentation fault on service mode

Got segmentation fault on service mode.

OS information:

root@canis2:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial
root@canis2:~# uname -a
Linux canis2 4.4.0-122-generic #146-Ubuntu SMP Mon Apr 23 15:34:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@canis2:~# node --version
v7.10.1
root@canis2:~# npm --version
4.2.0

Standard output from application while crash:

{ hash: 'f9413e3349a64227548bf7275087211ed5fb470c',
  path: 'Shadowhunters S01E11 Blood Calls to Blood.mp4',
  size: 253744974,
  id: 4354294,
  pathIndex: 'Shadowhunters S01E11 Blood Calls to Blood.mp4' }
{ Error: Connection lost: The server closed the connection.
    at Protocol.end (/home/canis/rats-search/node_modules/mysql/lib/protocol/Protocol.js:113:13)
    at Socket.<anonymous> (/home/canis/rats-search/node_modules/mysql/lib/Connection.js:109:28)
    at emitNone (events.js:91:20)
    at Socket.emit (events.js:188:7)
    at endReadableNT (_stream_readable.js:975:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    --------------------
    at Protocol._enqueue (/home/canis/rats-search/node_modules/mysql/lib/protocol/Protocol.js:145:48)
    at Connection.query (/home/canis/rats-search/node_modules/mysql/lib/Connection.js:208:25)
    at Promise (/home/canis/rats-search/src/background/mysql.js:22:13)
    at Connection.sphinx.query (/home/canis/rats-search/src/background/mysql.js:7:45)
    at insertTorrentToDB (/home/canis/rats-search/src/background/spider.js:431:14)
    at updateTorrent (/home/canis/rats-search/src/background/spider.js:552:2)
    at Client.<anonymous> (/home/canis/rats-search/src/background/spider.js:582:3)
    at emitThree (events.js:116:13)
    at Client.emit (events.js:197:7)
    at Wire.wire.on (/home/canis/rats-search/src/background/bt/client.js:61:22) fatal: true, code: 'PROTOCOL_CONNECTION_LOST' }
{ hash: 'd443b5186c66b9442062394a125edf91a7b51b0d',
  name: 'Nero.Burning.Rom.11.2011.PC',
  size: 124104850,
  files: 2,
  piecelength: 131072,
  ipv4: '73.166.175.208',
  port: 36575,
  added: 1525532241,
  contentType: 'application',
  id: 254195,
  nameIndex: 'Nero.Burning.Rom.11.2011.PC' }
{ Error: Connection lost: The server closed the connection.
    at Protocol.end (/home/canis/rats-search/node_modules/mysql/lib/protocol/Protocol.js:113:13)
    at Socket.<anonymous> (/home/canis/rats-search/node_modules/mysql/lib/Connection.js:109:28)
    at emitNone (events.js:91:20)
    at Socket.emit (events.js:188:7)
    at endReadableNT (_stream_readable.js:975:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    --------------------
    at Protocol._enqueue (/home/canis/rats-search/node_modules/mysql/lib/protocol/Protocol.js:145:48)
    at Connection.query (/home/canis/rats-search/node_modules/mysql/lib/Connection.js:208:25)
    at Promise (/home/canis/rats-search/src/background/mysql.js:22:13)
    at Connection.sphinx.query (/home/canis/rats-search/src/background/mysql.js:7:45)
    at insertTorrentToDB (/home/canis/rats-search/src/background/spider.js:431:14)
    at updateTorrent (/home/canis/rats-search/src/background/spider.js:552:2)
    at Client.<anonymous> (/home/canis/rats-search/src/background/spider.js:582:3)
    at emitThree (events.js:116:13)
    at Client.emit (events.js:197:7)
    at Wire.wire.on (/home/canis/rats-search/src/background/bt/client.js:61:22) fatal: true, code: 'PROTOCOL_CONNECTION_LOST' }
Segmentation fault

npm ERR! Linux 4.4.0-122-generic
npm ERR! argv "/home/canis/.nvm/versions/node/v7.10.1/bin/node" "/home/canis/.nvm/versions/node/v7.10.1/bin/npm" "run" "server"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 139
npm ERR! [email protected] server: `node src/background/server.js`
npm ERR! Exit status 139
npm ERR!
npm ERR! Failed at the [email protected] server script 'node src/background/server.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the rats-search package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node src/background/server.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs rats-search
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls rats-search
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/canis/.npm/_logs/2018-05-05T16_47_40_260Z-debug.log

/home/canis/.npm/_logs/2018-05-05T16_47_40_260Z-debug.log:

0 info it worked if it ends with ok
1 verbose cli [ '/home/canis/.nvm/versions/node/v7.10.1/bin/node',
1 verbose cli   '/home/canis/.nvm/versions/node/v7.10.1/bin/npm',
1 verbose cli   'run',
1 verbose cli   'server' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preserver', 'server', 'postserver' ]
5 info lifecycle [email protected]~preserver: [email protected]
6 silly lifecycle [email protected]~preserver: no script for preserver, continuing
7 info lifecycle [email protected]~server: [email protected]
8 verbose lifecycle [email protected]~server: unsafe-perm in lifecycle true
9 verbose lifecycle [email protected]~server: PATH: /home/canis/.nvm/versions/node/v7.10.1/lib/node_modules/npm/bin/node-gyp-bin:/home/canis/rats-search/node_modules/.bin:/home/canis/.nvm/versions/node/v7.10.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
10 verbose lifecycle [email protected]~server: CWD: /home/canis/rats-search
11 silly lifecycle [email protected]~server: Args: [ '-c', 'node src/background/server.js' ]
12 silly lifecycle [email protected]~server: Returned: code: 139  signal: null
13 info lifecycle [email protected]~server: Failed to exec server script
14 verbose stack Error: [email protected] server: `node src/background/server.js`
14 verbose stack Exit status 139
14 verbose stack     at EventEmitter.<anonymous> (/home/canis/.nvm/versions/node/v7.10.1/lib/node_modules/npm/lib/utils/lifecycle.js:279:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:194:7)
14 verbose stack     at ChildProcess.<anonymous> (/home/canis/.nvm/versions/node/v7.10.1/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:194:7)
14 verbose stack     at maybeClose (internal/child_process.js:899:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid [email protected]
16 verbose cwd /home/canis/rats-search
17 error Linux 4.4.0-122-generic
18 error argv "/home/canis/.nvm/versions/node/v7.10.1/bin/node" "/home/canis/.nvm/versions/node/v7.10.1/bin/npm" "run" "server"
19 error node v7.10.1
20 error npm  v4.2.0
21 error code ELIFECYCLE
22 error errno 139
23 error [email protected] server: `node src/background/server.js`
23 error Exit status 139
24 error Failed at the [email protected] server script 'node src/background/server.js'.
24 error Make sure you have the latest version of node.js and npm installed.
24 error If you do, this is most likely a problem with the rats-search package,
24 error not with npm itself.
24 error Tell the author that this fails on your system:
24 error     node src/background/server.js
24 error You can get information on how to open an issue for this project with:
24 error     npm bugs rats-search
24 error Or if that isn't available, you can get their info via:
24 error     npm owner ls rats-search
24 error There is likely additional logging output above.
25 verbose exit [ 139, true ]

Уведомление о новой версии для портативок

Поскольку судя по комменту https://pikabu.ru/story/torrent_poiskovik_piratskiy_den_6016682?cid=116996483 портативки не обновляются было бы неплохо если бы люди могли хотя бы узнать о том что новая версия доступна для скачивания.

P.S. Не знаю как тут определить баг или фича, поэтому создал уж как есть.

del

Каждая 1000 записей в БД требует ~7MB для хранения на диске.

БД на 144к:
Без сжатия - 951MB
W10 сжатие - 357MB
zip архив - 202MB
7z архив - 148MB

Может сделать хотя бы простейшее zip-сжатие? Экономия места более чем в 4 раза (2 при использовании встроенного в Windows сжатия папок).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.