Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[req]: Bitmagnet #15126

Open
1 task done
moose999 opened this issue Mar 7, 2024 · 25 comments
Open
1 task done

[req]: Bitmagnet #15126

moose999 opened this issue Mar 7, 2024 · 25 comments
Labels
Needs C# PR Welcome! We would welcome a volunteer to prepare a PR to solve this problem! Returns XML Rewrite in C#

Comments

@moose999
Copy link

moose999 commented Mar 7, 2024

Is there already a request for your feature?

  • I have checked older issues, open and closed

Is your feature request related to a problem? Please describe.

Not a problem, just a feature request.

Describe the solution you'd like

I would like to add the Bitmagnet self-hosted torrent search engine to Jackett :)

Describe alternatives you've considered

No response

@garfield69
Copy link
Contributor

repo at https://github.com/bitmagnet-io/bitmagnet
app is still in alpha and subject to significant changes.
I'm not sure this is ready for an indexer, I would not want to be chasing the webui updates to keep the indexer up to date until the app is out of alpha.
For example, In the last two weeks the WEBUI went through a rebuild and subsequent optimisation and improvements.

@garfield69 garfield69 added New Public Tracker Request a Tracker that does not require a login On hold labels Mar 7, 2024
@garfield69 garfield69 changed the title [req]: Support for Bitmagnet [req]: Bitmagnet Mar 7, 2024
@garfield69
Copy link
Contributor

has torznab api endpoints so WEBUI development can be ignored.
docker or native go (golang) based

@garfield69 garfield69 removed the On hold label Mar 7, 2024
@garfield69
Copy link
Contributor

I cant progress this one, the docker compose is for an alpine build which wont run on my windows desktop docker, so I could not test this even if I wanted to create a cardigann indexer to make torznab queries and parse xml responses.
Volunteers welcome to submit a PR.

@garfield69 garfield69 added the PR Welcome! We would welcome a volunteer to prepare a PR to solve this problem! label Mar 8, 2024
@davispuh
Copy link

davispuh commented Mar 9, 2024

I'm also interested in this but because it follows Torznab API I think it would make sense for Jackett to have "Add Custom Torznab Indexer" where you just point to any Torznab API compatible URL. That way no need to add such indexers in code. Potentially could be more such aswell.

@ilike2burnthing
Copy link
Contributor

ilike2burnthing commented Mar 10, 2024

@davispuh issue is that we (currently) don't allow duplicate indexers, so whether we named it Bitmagnet or Custom Torznab Indexer, you could only have one and they'd behave the same.

@davispuh
Copy link

It's not about name and not duplicate. Only underlying protocol would be same (Torznab) but you could add any endpoints with whatever name you want. For example you could even chain Jackett itself.

Consider this case I have 2 friends where they have access to private trackers but they don't want to share those credentials so they let me use their Jackett instance as another Indexer for my own instance.

It would look like this

My Jackett => (Torznab API) => Friend's A Jackett => Private Tracker X
         |
         ^ => (Torznab API) => Friend's B Jackett => Private Tracker Z


This essentially allows federation of Jackett.

@ilike2burnthing
Copy link
Contributor

Yea, I understand that, but as we can't make duplicate indexers, it makes more sense that we'd add separate, named indexers for Bitmagnet, Jackett, Prowlarr, and anything else which might arise.

@garfield69
Copy link
Contributor

I think it would make sense for Jackett to have "Add Custom Torznab Indexer" where you just point to any Torznab API compatible URL

You're thinking along the lines of what the *arr apps have.
The difference here is that Jackett was written to respond to Torznab queries from *arr apps, and was not originally designed to be the generator of Torznab queries directed to other apps such as bitmagnet.
For Jackett to implement an add-custom-torznab-indexer feature would require a new C# module, GUI updates and indexer management updates among other things.
This is no small task which the current team does not have the resources to implement.
You could raise an [Enhancement] ticket to introduce such a feature request as that enhancement is outside of the scope of this ticket, and we would rely on a C# dev volunteer to implement that feature.

In the mean time, this ticket is focused on an individual new indexer request.
If written in yaml (which is my area of expertise and my main Jackett support role), then I think the indexer could support the free-text-search Torznab query using the t=search caps, but if anything more broad than this is required, such as supporting multiple caps like t=movie, t=tvsearch, t=books, t=music, with imdbid, tmdbid, tvdbid etc. ID searches, then the indexer would have to be written in C#, which someone else would need to implement.
The other alternative is to write the yaml indexer to process the bitmagnet webui using queries that the bitmagnet webui would generate and scraping the webui html results, which is what most of the standard yaml Jackett indexers do.
But as I stated earlier, while the bitmagnet app is in alpha I'm reluctant to deep dive into something that could change from one week to the next.

@garfield69
Copy link
Contributor

garfield69 commented Mar 13, 2024

Set bitmagnet up on my ubuntu22 image on my win10 VirtualBox and got the webui up long enough to see it gather a few torrents
Discovered that the webui presentation is dynamically presented using javascripts, so it will not be possible to process the search page with the yaml cardigann processor which relies on static HTML pages.
Which leaves the torznab API the only way forward if this indexer is ever to get off the ground.
I'll next work on seeing if I can build a yaml indexer using the t=search Torznab query and process the returned xml

@garfield69
Copy link
Contributor

garfield69 commented Mar 14, 2024

I've written a yaml indexer which works, albeit with some constraints.

  1. unable to pull the seeders, leechers and files, as these are not in the regular tag fields of the xml response.
  2. the indexer would need to be re-written in C# to fetch all the torznab:Attr fields (that have seeds, leech, file, imdb and tmdb among other data available).
  3. but we get all the main data, title, time, infohash, size.
  4. testing has been limited since I'm not going to run the DHT trawler long enough (probably need a week or more) to gather enough torrents to cover all the categories, but the main ones have been captured so if you came across any blanks or errors in the results we can add/correct the cats. The alpha does state that unknown cats are still the majority and a work in progress.
  5. searching with tmdbid or imdbid does not appear to be working, I get the latest 100 torrents despite using a &t=movie&imdbid=12345678 query. It may be that I have not configured bitmagnet with the necessary tmdb/imdb support.

but its a start and better than nothing.
Will be out with the next release of Jackett which is dues in about 3 hours or so.

garfield69 added a commit that referenced this issue Mar 14, 2024
garfield69 added a commit that referenced this issue Mar 14, 2024
@garfield69
Copy link
Contributor

v0.21.2025

@ilike2burnthing
Copy link
Contributor

We also have Magnetico, another self-hosted DHT crawler, and it's set as semi-private. I'm not sure which of public/semi/private is most accurate (anyone can set it up, you don't need an account, so public makes sense, but as it's self-hosted and runs locally, by default no one has access but you, so private makes sense too), but they should probably be the same.

@garfield69
Copy link
Contributor

Hmm.
bitmagnet does not have any logins to access the webui or an apikey for the api so its public. (at the alpha stage, may change in future?)
magnetico has a username and password hence the semi-private status

I don't think we can set it private and not prevent username/password input boxes showing up on the config
same for semi I think.

@garfield69
Copy link
Contributor

Also I may have put bitmagnet in the wrong place in the readme, I was just duplicating the magnetico entry as a template ;-D

@ilike2burnthing ilike2burnthing added Needs C# Rewrite in C# Returns XML and removed New Public Tracker Request a Tracker that does not require a login labels Mar 14, 2024
@ilike2burnthing
Copy link
Contributor

Moved.

@garfield69
Copy link
Contributor

did a little experimenting.
if private or semi and there is settings: [] present in the yaml, then the config shows just a tags input box
if private or semi and there is no settings: [] present in the yaml, then the config shows username, password and tags input boxes
if private or semi and there is a settings: block in the yaml ,then the config shows whatever is in the settings plus the tags input box.

@garfield69
Copy link
Contributor

So we could move them both to private I suppose, to reflect the view that its a personal indexer?

@ilike2burnthing
Copy link
Contributor

Yea, makes sense.

@davispuh
Copy link

I just tested it and searching on Jackett itself seems to be working fine.

attels

But when I search on qBittorrent using Jackett plugin then results doesn't seem to contain anything from BitMagnet but always from other indexers 🤷‍♂️

Also it looks like magnet/download link is missing in results for it (maybe that's why qBittorrent excluded it?)

attels

@garfield69
Copy link
Contributor

If the Jackett dashboard search using the bitmagnet indexer shows results that all include a magnet link, then the indexer is working as it should.
If however some of the results on the dashboard do not show a magnet then there is a problem with the indexer, so raise a fresh ticket and report an example by providing a full enhanced log https://github.com/Jackett/Jackett/wiki/Troubleshooting#how-to-provide-a-jackett-enhanced-log-for-a-ticket so we can do some research.

if the qBt plugin is showing the same torrents names as Jackett, but Jackett shows a magnet and the plugin does not, then that is an issue with the qBt plugin.
We are not responsible for the plugin so you may need to follow that up with qBt support.

@davispuh
Copy link

If the Jackett dashboard search using the bitmagnet indexer shows results that all include a magnet link, then the indexer is working as it should.

It shows results but without magnet link.

so raise a fresh ticket and report an example

Don't see point of creating new ticket. Here's log

2024-03-18 21:01:01.1014 Info Request starting HTTP/1.0 GET http://127.0.0.1:9117/jackett/api/v2.0/indexers/all/results?apikey=(removed)&Query=Fedora-Live-Cinnamon-x86_64-23&Tracker%5B%5D=bitmagnet&_=1710787827863 - -
2024-03-18 21:01:01.1014 Debug Request is continuing in applying rules. Current url is http://127.0.0.1:9117/jackett/api/v2.0/indexers/all/results?apikey=(removed)&Query=Fedora-Live-Cinnamon-x86_64-23&Tracker%5B%5D=bitmagnet&_=1710787827863
2024-03-18 21:01:01.1014 Debug Request is continuing in applying rules. Current url is http://127.0.0.1:9117/jackett/api/v2.0/indexers/all/results?apikey=(removed)&Query=Fedora-Live-Cinnamon-x86_64-23&Tracker%5B%5D=bitmagnet&_=1710787827863
2024-03-18 21:01:01.1037 Debug Request is continuing in applying rules. Current url is http://127.0.0.1:9117/jackett/api/v2.0/indexers/all/results?apikey=(removed)&Query=Fedora-Live-Cinnamon-x86_64-23&Tracker%5B%5D=bitmagnet&_=1710787827863
2024-03-18 21:01:01.1037 Debug The request path /api/v2.0/indexers/all/results does not match a supported file type
2024-03-18 21:01:01.1037 Debug AuthenticationScheme: Cookies was successfully authenticated.
2024-03-18 21:01:01.1037 Debug 1 candidate(s) found for the request path '/api/v2.0/indexers/all/results'
2024-03-18 21:01:01.1037 Debug Endpoint 'Jackett.Server.Controllers.ResultsController.Results (jackett)' with route pattern 'api/v2.0/indexers/{indexerId}/results' is valid for the request path '/api/v2.0/indexers/all/results'
2024-03-18 21:01:01.1037 Debug Request matched endpoint 'Jackett.Server.Controllers.ResultsController.Results (jackett)'
2024-03-18 21:01:01.1037 Info Executing endpoint 'Jackett.Server.Controllers.ResultsController.Results (jackett)'
2024-03-18 21:01:01.1037 Info Route matched with {action = "Results", controller = "Results"}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Results(Jackett.Common.Models.DTO.ApiSearch) on controller Jackett.Server.Controllers.ResultsController (jackett).
2024-03-18 21:01:01.1069 Debug Execution plan of authorization filters (in the following order): Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter
2024-03-18 21:01:01.1069 Debug Execution plan of resource filters (in the following order): None
2024-03-18 21:01:01.1069 Debug Execution plan of action filters (in the following order): Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter (Order: -2147483648), Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter (Order: -3000), Microsoft.AspNetCore.Mvc.Filters.ResponseCacheFilter, Jackett.Server.Controllers.RequiresApiKey, Jackett.Server.Controllers.RequiresConfiguredIndexer, Jackett.Server.Controllers.RequiresValidQuery
2024-03-18 21:01:01.1069 Debug Execution plan of exception filters (in the following order): None
2024-03-18 21:01:01.1069 Debug Execution plan of result filters (in the following order): None
2024-03-18 21:01:01.1069 Debug Executing controller factory for controller Jackett.Server.Controllers.ResultsController (jackett)
2024-03-18 21:01:01.1069 Debug Executed controller factory for controller Jackett.Server.Controllers.ResultsController (jackett)
2024-03-18 21:01:01.1069 Debug Attempting to bind parameter 'requestt' of type 'Jackett.Common.Models.DTO.ApiSearch' ...
2024-03-18 21:01:01.1105 Debug Attempting to bind parameter 'requestt' of type 'Jackett.Common.Models.DTO.ApiSearch' using the name '' in request data ...
2024-03-18 21:01:01.1105 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.Query' of type 'System.String' using the name 'Query' in request data ...
2024-03-18 21:01:01.1105 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.Query' of type 'System.String'.
2024-03-18 21:01:01.1105 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.Category' of type 'System.Int32[]' using the name 'Category' in request data ...
2024-03-18 21:01:01.1105 Debug Could not find a value in the request with name 'Category' for binding property 'Jackett.Common.Models.DTO.ApiSearch.Category' of type 'System.Int32[]'.
2024-03-18 21:01:01.1137 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.Category' of type 'System.Int32[]'.
2024-03-18 21:01:01.1137 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.Tracker' of type 'System.String[]' using the name 'Tracker' in request data ...
2024-03-18 21:01:01.1137 Debug Could not bind to collection using a format like Tracker=value1&Tracker=value2
2024-03-18 21:01:01.1192 Debug Attempting to bind model using indices. Example formats include: [0]=value1&[1]=value2, Tracker[0]=value1&Tracker[1]=value2, Tracker.index=zero&Tracker.index=one&Tracker[zero]=value1&Tracker[one]=value2
2024-03-18 21:01:01.1205 Debug Attempting to bind model of type 'System.String' using the name 'Tracker[0]' in request data ...
2024-03-18 21:01:01.1205 Debug Could not find a value in the request with name 'Tracker[0]' of type 'System.String'.
2024-03-18 21:01:01.1205 Debug Done attempting to bind model of type 'System.String' using the name 'Tracker[0]'.
2024-03-18 21:01:01.1205 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.Tracker' of type 'System.String[]'.
2024-03-18 21:01:01.1205 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.ImdbId' of type 'System.String' using the name 'ImdbId' in request data ...
2024-03-18 21:01:01.1205 Debug Could not find a value in the request with name 'ImdbId' for binding property 'Jackett.Common.Models.DTO.ApiSearch.ImdbId' of type 'System.String'.
2024-03-18 21:01:01.1205 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.ImdbId' of type 'System.String'.
2024-03-18 21:01:01.1205 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.DoubanID' of type 'System.Nullable`1[System.Int32]' using the name 'DoubanID' in request data ...
2024-03-18 21:01:01.1235 Debug Could not find a value in the request with name 'DoubanID' for binding property 'Jackett.Common.Models.DTO.ApiSearch.DoubanID' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1235 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.DoubanID' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1235 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.RageID' of type 'System.Nullable`1[System.Int32]' using the name 'RageID' in request data ...
2024-03-18 21:01:01.1235 Debug Could not find a value in the request with name 'RageID' for binding property 'Jackett.Common.Models.DTO.ApiSearch.RageID' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1235 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.RageID' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1235 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TvdbId' of type 'System.Nullable`1[System.Int32]' using the name 'TvdbId' in request data ...
2024-03-18 21:01:01.1279 Debug Could not find a value in the request with name 'TvdbId' for binding property 'Jackett.Common.Models.DTO.ApiSearch.TvdbId' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1279 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TvdbId' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1279 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TmdbId' of type 'System.Nullable`1[System.Int32]' using the name 'TmdbId' in request data ...
2024-03-18 21:01:01.1279 Debug Could not find a value in the request with name 'TmdbId' for binding property 'Jackett.Common.Models.DTO.ApiSearch.TmdbId' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1279 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TmdbId' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1302 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TvMazeId' of type 'System.Nullable`1[System.Int32]' using the name 'TvMazeId' in request data ...
2024-03-18 21:01:01.1302 Debug Could not find a value in the request with name 'TvMazeId' for binding property 'Jackett.Common.Models.DTO.ApiSearch.TvMazeId' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1302 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TvMazeId' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1302 Debug Attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TraktID' of type 'System.Nullable`1[System.Int32]' using the name 'TraktID' in request data ...
2024-03-18 21:01:01.1302 Debug Could not find a value in the request with name 'TraktID' for binding property 'Jackett.Common.Models.DTO.ApiSearch.TraktID' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1302 Debug Done attempting to bind property 'Jackett.Common.Models.DTO.ApiSearch.TraktID' of type 'System.Nullable`1[System.Int32]'.
2024-03-18 21:01:01.1302 Debug Done attempting to bind parameter 'requestt' of type 'Jackett.Common.Models.DTO.ApiSearch'.
2024-03-18 21:01:01.1335 Debug Done attempting to bind parameter 'requestt' of type 'Jackett.Common.Models.DTO.ApiSearch'.
2024-03-18 21:01:01.1335 Debug Attempting to validate the bound parameter 'requestt' of type 'Jackett.Common.Models.DTO.ApiSearch' ...
2024-03-18 21:01:01.1335 Debug Done attempting to validate the bound parameter 'requestt' of type 'Jackett.Common.Models.DTO.ApiSearch'.
2024-03-18 21:01:01.1335 Debug CACHE PruneCacheByTtl / Pruned queries: 209
2024-03-18 21:01:01.1376 Debug CACHE Status / Total cached results: 0
2024-03-18 21:01:01.1376 Debug CACHE Search / Indexer: bitmagnet / CacheHit: False / Query: {"QueryType":"search","Categories":[],"Extended":0,"ApiKey":null,"Limit":0,"Offset":0,"RageID":null,"TvdbID":null,"ImdbID":null,"TmdbID":null,"TvmazeID":null,"TraktID":null,"DoubanID":null,"Season":0,"Episode":null,"SearchTerm":"Fedora-Live-Cinnamon-x86_64-23","Album":null,"Artist":null,"Label":null,"Track":null,"Year":null,"Genre":null,"Author":null,"Title":null,"Publisher":null,"IsTest":false,"ImdbIDShort":null,"IsSearch":true,"IsTVSearch":false,"IsMovieSearch":false,"IsMusicSearch":false,"IsBookSearch":false,"IsTVRageQuery":false,"IsTvdbQuery":false,"IsImdbQuery":false,"IsTmdbQuery":false,"IsTvmazeQuery":false,"IsTraktQuery":false,"IsDoubanQuery":false,"IsGenreQuery":false,"IsRssSearch":false,"IsIdSearch":false,"HasSpecifiedCategories":false,"SanitizedSearchTerm":"Fedora-Live-Cinnamon-x86_64-23"}
2024-03-18 21:01:01.1409 Debug WebClient(HttpWebClient2).GetResultAsync(Method: GET Url: http://127.0.0.1:3333/torznab/api?t=search&q=Fedora-Live-Cinnamon-x86_64-23&limit=100)
2024-03-18 21:01:24.9753 Debug WebClient(HttpWebClient2): Returning OK => 9577 bytes
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:torznab="http://torznab.com/schemas/2015/feed">
  <channel>
    <title>bitmagnet</title>
    <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
    <lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate>
    <response xmlns="http://www.newznab.com/DTD/2010/feeds/attributes/"></response>
    <item>
      <title>Fedora-Live-Cinnamon-x86_64-23</title>
      <guid>a7f1dd39d440c5a8fddb24f8d82a2518b08e7088</guid>
      <pubDate>Sat, 16 Mar 2024 18:40:55 +0200</pubDate>
      <category>Unknown</category>
      <size>1261438466</size>
      <enclosure url="magnet:?xt=urn:btih:a7f1dd39d440c5a8fddb24f8d82a2518b08e7088&amp;dn=Fedora-Live-Cinnamon-x86_64-23&amp;xl=1261438466" length="1261438466" type="application/x-bittorrent;x-scheme-handler/magnet"></enclosure>
      <torznab:attr name="infohash" value="a7f1dd39d440c5a8fddb24f8d82a2518b08e7088"></torznab:attr>
      <torznab:attr name="magneturl" value="magnet:?xt=urn:btih:a7f1dd39d440c5a8fddb24f8d82a2518b08e7088&amp;dn=Fedora-Live-Cinnamon-x86_64-23&amp;xl=1261438466"></torznab:attr>
      <torznab:attr name="category" value="8000"></torznab:attr>
      <torznab:attr name="size" value="1261438466"></torznab:attr>
      <torznab:attr name="publishdate" value="Sat, 16 Mar 2024 18:40:55 +0200"></torznab:attr>
      <torznab:attr name="seeders" value="1"></torznab:attr>
      <torznab:attr name="peers" value="0"></torznab:attr>
      <torznab:attr name="files" value="2"></torznab:attr>
    </item>
  </channel>
</rss>
2024-03-18 21:01:24.9983 Debug CACHE CacheResults / Indexer: bitmagnet / Added: 1 releases
2024-03-18 21:01:24.9983 Debug CACHE PruneCacheByMaxResultsPerIndexer / Indexer: bitmagnet / Pruned queries: 0
2024-03-18 21:01:24.9983 Debug CACHE Status / Total cached results: 1
2024-03-18 21:01:24.9983 Info Manual search in BitMagnet (Local DHT) for Fedora-Live-Cinnamon-x86_64-23 => Found 1 releases [23864ms]
2024-03-18 21:01:24.9983 Info Executing JsonResult, writing value of type 'Jackett.Common.Models.DTO.ManualSearchResult'.
2024-03-18 21:01:25.0001 Debug No response compression available for HTTPS requests. See ResponseCompressionOptions.EnableForHttps.
2024-03-18 21:01:25.0001 Info Executed action Jackett.Server.Controllers.ResultsController.Results (jackett) in 23891.1694ms
2024-03-18 21:01:25.0001 Info Executed endpoint 'Jackett.Server.Controllers.ResultsController.Results (jackett)'
2024-03-18 21:01:25.0001 Info Request finished HTTP/1.0 GET http://127.0.0.1:9117/jackett/api/v2.0/indexers/all/results?apikey=(removed)&Query=Fedora-Live-Cinnamon-x86_64-23&Tracker%5B%5D=bitmagnet&_=1710787827863 - - - 200 - application/json;+charset=utf-8 23899.1349ms
2024-03-18 21:01:25.0001 Debug Connection id "0HN27AJ6ER27M" disconnecting.
2024-03-18 21:01:25.0001 Debug Connection id "0HN27AJ6ER27M" stopped.
2024-03-18 21:01:25.0001 Debug Connection id "0HN27AJ6ER27M" sending FIN because: "The Socket transport's send loop completed gracefully."

We can see that bitmagnet response contains infohash and magneturl but it doesn't show in Jackett

attels

Also btw if I click on torrent's name it opens homepage of bitmagnet Web UI instead of opening that specific torrent there. This might need some better integration not sure if there's some way to link in UI.

if the qBt plugin is showing the same torrents names as Jackett, but Jackett shows a magnet and the plugin does not, then that is an issue with the qBt plugin.

qBittorrent shows results that come from other Jackett indexers but results from bitmagnet doesn't show up there at all.

@davispuh
Copy link

Also btw if I click on torrent's name it opens homepage of bitmagnet Web UI instead of opening that specific torrent there. This might need some better integration not sure if there's some way to link in UI.

Not possible to implement here right now because bitmagnet is missing such ability to link to a torrent, but that will be implemented there in future at some point, see bitmagnet-io/bitmagnet#192

@garfield69
Copy link
Contributor

garfield69 commented Mar 18, 2024

Ah. the indexer uses the yaml infohash statement (which takes the hash from guid and builds a public magnet link, because the yaml cannot process the torznab:attr fields).

But what is happening is that since we switched the type from public to private 4 days ago, cardigann prevents auto-magnet-generation from the hash because that would generate a public magnet not a private magnet (which uses just one tracker from the private site).

Forgot about that little gotcha ;-)

I'll switch to semi-private and that should restore the magnet.

garfield69 added a commit that referenced this issue Mar 18, 2024
@garfield69
Copy link
Contributor

v0.21.2090

@davispuh
Copy link

davispuh commented Mar 27, 2024

Works fine now! Also shows up in qBittorrent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs C# PR Welcome! We would welcome a volunteer to prepare a PR to solve this problem! Returns XML Rewrite in C#
Projects
None yet
Development

No branches or pull requests

4 participants