debridmediamanager / zurg-testing

A self-hosted Real-Debrid webdav server you can use with Infuse. Together with rclone it can mount your Real-Debrid torrent library into your filesystem and load it to Plex or Jellyfin.
432 stars 30 forks source link

`retain_folder_name_extension` not respected #24

Closed westsurname closed 8 months ago

westsurname commented 8 months ago

Expected Behavior When retain_folder_name_extension is set to true folders should have the original extensions.

Actual Behavior Folder extensions are removed.

Detailed Steps I ran Zurg with retain_folder_name_extension set to false at first, and then switched it to true and re-ran. I also attempted setting retain_rd_torrent_name to true, though I'm not sure what specifically that does.

Operating System Linux

Environment Setup I'm running the amd64 binary. Built At: 2023-12-18T01:53:52 Commit: 274d60f5ed9b1544faee36f76a714500fe1fb637 Version: v0.9.2-hotfix.4

Logs

2023-12-29T19:51:53.388+0100    INFO    manager Fetched 11759 downloads
2023-12-29T19:51:57.528+0100    INFO    manager Compiled into 3256 torrents, 0 were missing info
2023-12-29T19:51:57.794+0100    INFO    manager Finished initializing torrent manager
2023-12-29T19:51:57.794+0100    INFO    zurg    Starting server on [::]:9999
2023-12-29T19:51:57.794+0100    INFO    manager Starting periodic refresh

Rclone Configuration

[zurg]
type = webdav
url = http://localhost:9999/dav/
vendor = other
pacer_min_sleep = 0

[zurghttp]
type = http
url = http://localhost:9999/http/
no_head = false
no_slash = false
no_auth = false

Zurg Configuration

# Zurg configuration version
zurg: v1
token: [removed] # https://real-debrid.com/apitoken

# basic functionality
host: "[::]" # do not change this if you are running it inside a docker container
port: 9999 # do not change this if you are running it inside a docker container
concurrent_workers: 20
check_for_changes_every_secs: 5

# misc configs
retain_folder_name_extension: true # if true, zurg won't modify the filenames from real-debrid
retain_rd_torrent_name: false # if true, it will strictly follow RD API torrent name property w/c should make this more compatible with rdt-client
auto_delete_rar_torrents: true # if true, zurg will delete unstreamable rar files (these torrents will always be compressed in a rar archive no matter what files you select)
use_download_cache: true # if true, during zurg initialization, it will fetch all downloads to unrestrict links faster
enable_repair: true # BEWARE! THERE CAN ONLY BE 1 INSTANCE OF ZURG THAT SHOULD REPAIR YOUR TORRENTS
# on_library_update: sh plex_update.sh "$@"
# on_library_update: |
#   for arg in "$@"
#   do
#       echo "detected update on: $arg"
#   done

# network configs
network_buffer_size: 1048576 # 1 MiB
serve_from_rclone: false # serve file data from rclone, not from zurg (zurg will only provide rclone the link to download)
verify_download_link: true # if true, zurg will check if the link is truly streamable; only relevant if serve_from_rclone is set to true (as it already does this all the time if serve_from_rclone is false)
force_ipv6: false # force connect to real-debrid ipv6 addresses
rate_limit_sleep_secs: 6 # wait time after getting a 429 from Real-Debrid API
realdebrid_timeout_secs: 60 # api timeout
retries_until_failed: 5 # api failures until considered failed
# preferred_hosts: # Run ./zurg network-test
#   - 20.download.real-debrid.com
#   - 21.download.real-debrid.com
#   - 22.download.real-debrid.com
#   - 23.download.real-debrid.com
#   - 30.download.real-debrid.com
#   - 31.download.real-debrid.com
#   - 32.download.real-debrid.com
#   - 34.download.real-debrid.com
#   - 40.download.real-debrid.com

# List of directory definitions and their filtering rules
directories:
  # Configuration for anime shows
  # anime:
  #   group: media # directories on different groups have duplicates of the same torrent
  #   group_order: 10 # group order = priority, it defines who eats first on a group
  #   filters:
  #     - and: # you can use nested 'and' & 'or' conditions
  #       - has_episodes: true # intelligent detection of episode files inside a torrent
  #       - any_file_inside_regex: /^\[/ # usually anime starts with [ e.g. [SubsPlease]
  #       - any_file_inside_not_regex: /s\d\de\d\d/i # and usually anime doesn't use SxxExx

  # shows:
  #   group: media
  #   group_order: 20
  #   filters:
  #     - has_episodes: true  # intelligent detection of episode files inside a torrent

  torrents:
    # group: media  # because anime, shows and movies are in the same group,
    # group_order: 30 # and anime and shows has a lower group_order number than movies, all torrents that doesn't fall into the previous 2 will fall into movies
    # only_show_the_biggest_file: true # let's not show the other files besides the movie itself
    filters:
      - regex: /.*/ # you cannot leave a directory without filters because it will not have any torrents in it

Screenshots Zurg: image Its_toggle Rclone fork: image

yowmamasita commented 8 months ago

does this chart make sense?

image
westsurname commented 8 months ago

Looks like the data folder needed to be deleted for these configurations to take effect.

With regards to the chart I'm a little unclear on a couple things, for starters, what's the else case for the 3rd row? I'm also a bit confused on where the original_filename comes from. Also, would you know which row on the chart is the closest match to the itsToggle rclone fork?

yowmamasita commented 8 months ago

it should be retain_rd_torrent_name: true

reopen the issue if something is unclear still :)