Commit Graph

262 Commits

Author SHA1 Message Date
Chocobo1
871438f557 Bump search engine components version
The master branch should have version larger than stable branch.
https://github.com/qbittorrent/qBittorrent/pull/21539/files#r1790078486

PR #21542.
2024-10-10 16:30:45 +08:00
ducalex
efdc4af448 Search helpers: Add POST support to retrieve_url
This allows passing request_data to retrieve_url in order to create a post request.

PR #21184.

---------

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2024-08-17 13:32:57 +08:00
Chocobo1
69a829dfb0 Clean up search engine
Notable changes:
1. Prevent excessive engine module imports.
2. Replace trivial usage of `join()`.
3. Keep the output text sorted whenever possible.
4. Close handles properly.
5. Print error to stderr, not stdout.
6. Report search job exit code.
7. Print exception message to stderr if exception was thrown when
   running a search job.
8. Utilize XML library to build XML data
   And use 2 spaces as indentation.

PR #21098.
2024-07-22 16:51:57 +08:00
Chocobo1
ea918da931 Allow numeric types
The canonical type for `size_string` is `str`. However numeric types are also accepted in order
to accommodate poorly written plugins.

PR #20976.
2024-06-23 12:43:35 +08:00
Chocobo1
d71086e400 Add type annotations
A few code are revised because the type checker (mypy) doesn't allow
changing types on a variable.

PR #20935.
2024-06-17 13:18:32 +08:00
BurningMop
dd34c85884 Add optional headers to search request
PR #20923.
2024-06-09 14:03:39 +08:00
Chocobo1
a126a7b493 Adjust user agent version automatically
The version calculation is an estimation and it will drift off after some time. Hopefully the
drift offset won't be noticeable within a few years.

Also switched the user agent to Windows 10 which has the largest portion of users to avoid
standing out from the crowd.

PR #20864.
2024-05-20 13:50:18 +08:00
Vladimir Golovnev
4d8713ce11 WebAPI: Add a way to download .torrent file using search plugin
* Simplify nova2dl script
* Use search engine name instead of site URL (like nova2 does)
* Add a way to download torrent using search plugin

PR #20824.
2024-05-15 08:47:40 +03:00
cayenne17
21a4ab6bac Update User-Agent
PR #20801.
2024-05-10 21:47:55 +03:00
ducalex
42b87963fd Add date column to the built-in search engine
Adds a date column to the built-in search engine to show when a torrent was published/uploaded on the engine site.
When a plugin wants to show a date, it can now add a `pub_date` entry to its result dict. The value format is a unix timestamp (an integer representing seconds since epoch).
Plugins with no date support will keep working.

PR #20703.
2024-04-29 21:10:24 +03:00
Chocobo1
b1175b60e1 Use proper comparison for None
PR #20762.
2024-04-29 12:47:27 +08:00
milahu
4ac586c896 Lazy load search plugins
PR #20553.
2024-04-24 22:15:22 +03:00
Chocobo1
47c38e8d91 Apply formatting 2024-03-23 13:55:58 +08:00
Chocobo1
62d96c068a Remove SGML parser
This library is unmaintained, outdated and plugin authors are encouraged to use html.parser
from Python Standard Library instead.

https://docs.python.org/3/library/html.parser.html

PR #19068.
2023-06-04 12:52:06 +08:00
Chocobo1
4ef8f39f23 Use python isolate mode
This (more or less) avoids user's environment variables tampering the
search process.
And also remove usages of `eval()` and `exec()`.

PR #18995.
2023-05-21 14:04:44 +08:00
luzpaz
4d480b8761 Fix various typos
Found via `codespell -q 3 -S *.ts`.
PR #15520.
2021-10-05 12:58:25 +08:00
Chocobo1
6bfed97710 Add README.md to searchengine folder 2021-01-11 15:11:36 +08:00
FranciscoPombal
41ae2bfb84 Make sure there are no empty files 2020-10-28 14:20:18 +00:00
FranciscoPombal
ef1c7eec74 Fix trailing whitespace in multiple files
Also fix formatting of CODING_GUIDELINES.md
2020-10-28 14:20:11 +00:00
Chocobo1
baa13c044a Drop python2 support
Closes #11811.
2020-02-08 12:36:45 +08:00
Chocobo1
6ac36368cd Update user agent string 2019-08-09 13:12:11 +08:00
Chocobo1
d52c6230e9 Fix defects found by lgtm.com 2018-11-03 00:34:25 +08:00
Chocobo1
bbe76231cf Reformat python code to be compliant with PEP8
The following command is used:
`pycodestyle --ignore=E265,E722 --max-line-length=100 <py files>`
2018-09-18 12:33:09 +08:00
Chocobo1
26a4703398 Move .qrc files into its own directory 2018-06-11 20:01:33 +08:00
Chocobo1
423511765a Fix typo 2018-03-14 23:37:08 +08:00
jan.karberg
d534973650 search only when category is supported by plugin Closes #8053 2017-12-17 13:04:37 +01:00
sledgehammer999
7a478424cc Revert "Drop python2 support.". Closes #7005.
This reverts commit 7d030b4cd9.
2017-07-06 01:07:09 +03:00
sledgehammer999
7d030b4cd9 Drop python2 support. 2017-06-25 17:20:50 +03:00
sledgehammer999
de74f9298f Remove all search plugins from repo. 2017-06-15 22:32:39 +03:00
KingLucius
ebc50a7237 remove ExtraTorrent plugin 2017-05-19 16:36:56 +02:00
ngosang
fa64f33c2a [Search engine] Add btdb plugin 2017-04-21 23:42:07 +02:00
ngosang
5d0cfc7475 [Search engine] Update legittorrents plugin 2017-04-20 21:17:24 +02:00
ngosang
339b35c369 [Search engine] Remove mininova plugin 2017-04-20 21:00:59 +02:00
ngosang
91e7e94820 [Search engine] Update demonoid plugin 2017-04-20 20:56:23 +02:00
ngosang
f0fe8808bd [Search engine] Update Extratorrent plugin 2017-03-02 21:21:33 +01:00
ngosang
a9c5dab0dd [Search engine] Update extratorrent plugin. Closes #6261 2017-01-21 19:27:14 +01:00
Yez Ezey
f6dbf2454d Fix extratorrent searchengine. Closes #5773
They changed to magnet link.
2016-11-05 22:31:17 +09:00
ngosang
d249e9e7c6 [Search engine] Remove TorrentReactor plugin 2016-10-11 22:51:54 +02:00
ngosang
7c13f71481 [Search engine] Update Demonoid plugin 2016-10-11 22:48:21 +02:00
Yez Ezey
3a744a954b Fixed extratorrent search not working Closes #5736 #5753
The original code accumulates all the <td> texts between the description
link and the number of seeders into self.current_item["size"]:
    <td>248.72</td><td>&nbsp;MB<td> => "248.72 MB".
ExtraTorrents changed the table design, added the Added column and joined
the number and its unit:
    <td>8d</td><td>248.72&nbsp;MB</td> => "8d 248.72 MB"
This commit stores only the last <td> text in self.current_item["size"].
2016-09-23 03:52:12 +09:00
ngosang
77b27abc94 [Search engine] Update Torrentz2 search engine 2016-08-24 00:46:09 +02:00
ngosang
b0c9c8a2aa [Search engine] Update Torrentz search engine 2016-08-22 23:25:54 +02:00
ngosang
4e2de98903 [Search engine] Remove BTDigg search engine 2016-08-13 21:38:14 +02:00
ngosang
9234f2f15d [Search engine] Remove KickassTorrents search engine 2016-08-10 20:41:03 +02:00
ngosang
95eb0efabe [search engine] Remove filters from Demonoid 2016-06-03 23:48:52 +02:00
ngosang
12de907732 [search engine] Remove filters from Torrentreactor and BTDigg 2016-06-03 23:48:52 +02:00
ngosang
bd318bd004 [Search engine] Update Torrentz 2016-05-30 23:04:34 +02:00
ngosang
47a252e517 [Search engine] Update PirateBay 2016-05-28 18:22:02 +02:00
ngosang
e542f17809 [Search engine] Fix LegitTorrents plugin 2016-04-23 23:18:48 +02:00
ngosang
06cd41801e [Search engine] Fix Mininova plugin 2016-04-23 22:37:19 +02:00