5rahim / seanime Goto Github PK
View Code? Open in Web Editor NEWScan, automate and enjoy your anime collection, read manga, track your progress and more - all in one place.
Home Page: https://seanime.rahim.app
License: MIT License
Scan, automate and enjoy your anime collection, read manga, track your progress and more - all in one place.
Home Page: https://seanime.rahim.app
License: MIT License
Describe the bug
Parser fails to extract season and episode with the format "SxE" (e.g., 1x10, 2x20) when the episode number is greater than 10.
It falls back to considering the entire string as the episode number.
Expected behavior
Parser should correctly split and extract the season and episode number
Seanime:
Additional context
The bug is due to the use of the wrong variable, that's why it doesn't fail when the season number is zero-padded (e.g., 01x10, 02x20).
// seanime-parser/parser_helper.go
if nEpisode < 10 && !strings.HasPrefix(season, "0") {
return "", "", "", false
}
should be
// seanime-parser/parser_helper.go
if nEpisode < 10 && !strings.HasPrefix(episode, "0") {
return "", "", "", false
}
Panic / Crash
Torrent Streaming
Server crashes when a torrent stream is stopped before being loaded into MPV because Close()
is called on an inexistant socket connection.
Steps to reproduce:
Stream should stop gracefully.
v1.5.0
Windows
when transcoding, the subtitles display near the centre of the screen with an opaque background.
Is it yet possible to customize the subtitles for transcoding?
Describe the bug
While scanning my Anime, reaching 70% and hydrating metadata causes the server to crash. Judging by the stack trace, it seems that in the function scanner.(*MediaTreeAnalysis).printBranches, at the line str = str[:len(str)-2] the string length is 1, resulting in a slice of [:-1]
To Reproduce
I narrowed down some Anime which are causing the issue and scanning any episode from at least these two causes the crash.
"Bannou Bunka Neko-Musume (1998)"
"Soreyuke! Uchuu Senkan Yamamoto Youko (1999)"
I'm not entirely sure what is unique about these. ¯\(ツ)/¯
Desktop:
Windows 11
Firefox
Version v0.3.0
Additional context
PANIC Please report this issue on the GitHub repository
========================================= Stack Trace =========================================
2024-02-21 13:51:25 ERR panic: runtime error: slice bounds out of range [:-1]
stacktrace:
goroutine 33359 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/debug/stack.go:24 +0x5e
github.com/sourcegraph/conc/panics.NewRecovered(0x9d0509?, {0x16591c0, 0xc003642e40})
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/panics/panics.go:59 +0x7d
github.com/sourcegraph/conc/panics.(*Catcher).tryRecover(0xc000d06d10)
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/panics/panics.go:28 +0x65
panic({0x16591c0?, 0xc003642e40?})
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/panic.go:914 +0x21f
github.com/seanime-app/seanime/internal/scanner.(*MediaTreeAnalysis).printBranches(0xc0005860e0?)
/home/runner/work/seanime/seanime/internal/scanner/media_tree_analysis.go:122 +0x192
github.com/seanime-app/seanime/internal/scanner.(*FileHydrator).hydrateGroupMetadata.func2(0xc005eed080, 0xa291d7?)
/home/runner/work/seanime/seanime/internal/scanner/hydrator.go:223 +0xb11
github.com/samber/lo.ForEach...
/home/runner/go/pkg/mod/github.com/samber/[email protected]/slice.go:92
github.com/seanime-app/seanime/internal/scanner.(*FileHydrator).hydrateGroupMetadata(0xc000d5f570, 0x177, {0xc000b78480?, 0xe, 0xc00830df20?}, 0xc000d06c80)
/home/runner/work/seanime/seanime/internal/scanner/hydrator.go:96 +0x1ae
github.com/seanime-app/seanime/internal/scanner.(*FileHydrator).HydrateMetadata.func2()
/home/runner/work/seanime/seanime/internal/scanner/hydrator.go:61 +0x30
github.com/sourcegraph/conc/pool.(*Pool).worker(0xc00830df78?)
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/pool/pool.go:154 +0x6f
github.com/sourcegraph/conc/panics.(*Catcher).Try(0xa0513c?, 0xc0034635c0?)
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/panics/panics.go:23 +0x48
github.com/sourcegraph/conc.(*WaitGroup).Go.func1()
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/waitgroup.go:32 +0x56
created by github.com/sourcegraph/conc.(*WaitGroup).Go in goroutine 22697
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/waitgroup.go:30 +0x73
goroutine 22697 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/debug/stack.go:24 +0x5e
github.com/seanime-app/seanime/internal/util.printRuntimeError({0x15c1aa0?, 0xc006df1880}, {0x0, 0x0})
/home/runner/work/seanime/seanime/internal/util/panic.go:20 +0x1c9
github.com/seanime-app/seanime/internal/util.HandlePanicWithError(0xc002845530)
/home/runner/work/seanime/seanime/internal/util/panic.go:27 +0x96
panic({0x15c1aa0?, 0xc006df1880?})
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/panic.go:914 +0x21f
github.com/sourcegraph/conc/panics.(*Catcher).Repanic(...)
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/panics/panics.go:38
github.com/sourcegraph/conc.(*WaitGroup).Wait(0xc000d06d00)
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/waitgroup.go:42 +0x4a
github.com/sourcegraph/conc/pool.(*Pool).Wait(0xc000d06d00)
/home/runner/go/pkg/mod/github.com/sourcegraph/[email protected]/pool/pool.go:79 +0x30
github.com/seanime-app/seanime/internal/scanner.(*FileHydrator).HydrateMetadata(0xc000d5f570)
/home/runner/work/seanime/seanime/internal/scanner/hydrator.go:65 +0x265
github.com/seanime-app/seanime/internal/scanner.(*Scanner).Scan(0xc002845670)
/home/runner/work/seanime/seanime/internal/scanner/scan.go:219 +0xc65
github.com/seanime-app/seanime/internal/handlers.HandleScanLocalFiles(0xc0037323b0)
/home/runner/work/seanime/seanime/internal/handlers/scan.go:73 +0x325
github.com/seanime-app/seanime/internal/handlers.InitRoutes.makeHandler.func34(0xc000004300)
/home/runner/work/seanime/seanime/internal/handlers/routes.go:256 +0xe4
github.com/gofiber/fiber/v2.(*App).next(0xc0003fe500, 0xc000004300)
/home/runner/go/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:145 +0x1b2
github.com/gofiber/fiber/v2.(*Ctx).Next(0x15a0b60?)
/home/runner/go/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:1014 +0x4d
github.com/gofiber/contrib/fiberzerolog.New.func1(0xc000004300)
/home/runner/go/pkg/mod/github.com/gofiber/contrib/[email protected]/zerolog.go:36 +0xb7
github.com/gofiber/fiber/v2.(*Ctx).Next(0xc001014f30?)
/home/runner/go/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:1011 +0x3d
github.com/gofiber/fiber/v2/middleware/cors.New.func1(0xc000004300)
/home/runner/go/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/cors/cors.go:165 +0x3d4
github.com/gofiber/fiber/v2.(*App).next(0xc0003fe500, 0xc000004300)
/home/runner/go/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:145 +0x1b2
github.com/gofiber/fiber/v2.(*App).handler(0xc0003fe500, 0xa93bcf?)
/home/runner/go/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:172 +0x78
github.com/valyala/fasthttp.(*Server).serveConn(0xc0003b3c00, {0x188bc00?, 0xc001394118})
/home/runner/go/pkg/mod/github.com/valyala/[email protected]/server.go:2359 +0x11d4
github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc00129e000, 0xc000d00000)
/home/runner/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:224 +0xa4
github.com/valyala/fasthttp.(*workerPool).getCh.func1()
/home/runner/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:196 +0x32
created by github.com/valyala/fasthttp.(*workerPool).getCh in goroutine 52
/home/runner/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 +0x1ab
===================================== End of Stack Trace ======================================
Low
UI
🤦
badge shouldn't be displayed if the media is indeed not releasing
v1.4.1
Windows
Describe the bug
Scanning the library results in an error: 'Error: record not found'
To Reproduce
Steps to reproduce the behavior:
Logs
2024-01-26 06:13:30 TRC Success latency="38.703µs" method=OPTIONS status=204 url=/api/v1/library/scan
2024-01-26 06:13:30 ERR Failed to save local files in the database error="record not found"
2024-01-26 06:13:30 ERR Server error latency="580.2µs" method=POST status=500 url=/api/v1/library/scan
Desktop:
Seanime:
Additional context
Media folder structure:
Desktop/seanime/mediatest/
├── Jaku-Chara Tomozaki-kun 2nd STAGE
│ └── Jaku-Chara Tomozaki-kun 2nd STAGE 01.mkv
└── [Judas] Watashi ni Tenshi ga Maiorita - S01E12.mkv
The user running seanime owns and has rwx access to the files.
Describe the bug
Program doesn't start properly when accessing 'http://127.0.0.1:43211/' after running the server
Its not always happening but like 8 times out of 10.
To Reproduce
Startup Seanime server
Go to http://127.0.0.1:43211/
See error
Expected behavior
Seanime should start.
2024-02-22 23:25:02 INF app: Loaded config from "C:\Users\user\AppData\Roaming\Seanime"
2024-02-22 23:25:03 INF db: Database instantiated
2024-02-22 23:25:03 INF app: Connected to database "seanime.db"
2024-02-22 23:25:03 INF watcher: Watching directory: "C:/Users/user/Downloads/Anime"
2024-02-22 23:25:08 INF app: Fetched Anilist collection
2024-02-22 23:25:08 INF app: Initialized modules
2024-02-22 23:25:08 INF Seanime started at http://127.0.0.1:43211
Windows 11
Floorp, Firefox, Edge
I spent at least 20 minutes how to make it work and I have no idea what I am even doing. I can't use mpv with seanime.
Make it more clean how to set up mpv to work with seanime.
Usability is affected
Other
Check the "Hide from status lists" checkbox. Seanime won't recognize the anime as "watching"; it won't appear in the "Currently watching" list, and the "Resolve hidden media" button won't do anything.
The anime should appear in the list. It could either ignore the "Hide from status lists" option or add customs lists under the "My Lists" section, allowing users to still see and watch their animes.
v1.5.3
Windows
No response
Adding a Built-in media player would better than using external media player imo you can check this media players for reference:
vime-js
videstack
ArtPlayer.js
Could you add SIMKL's Watchlist Sync feature.
Panic / Crash
Other
Panic caused by nil pointer dereference of error variable.
Hydration also fails regardless because the logic for fetching the absolute offset was idiotic
No response
v1.4.0
Windows
No response
There is spacing between pages of webtoons/manwhas in long strip mode
It would be great if there was no spacing or an option to remove the spacing :D
It's not convinient to run .exe everytime and navigate to localhost. Instead make it an web app which opens directly upon clicking on the exe and also auto starts the required torrent client and player client which we have to do everytime we start the server
I want to become your tester and want to help make this project reach greater reach
I have a kinda weird small screen 1440x900 and id like to see posters and better backgrounds
Describe the bug
Unable to launch the app
To Reproduce
Steps to reproduce the behavior:
seanime.exe
Expected behavior
Able to launch/run the app
Desktop:
Seanime:
Additional context
Add any other context about the problem here.
Add support for Arm64 for the docker image.
Arm64 docker support.
Usability is affected
Anime Library - Metadata
AniDB metadata doesn't work at all for me.
On any anime page it has a red text saying
No metadata found on AniDB
Also when trying to use the Stream option this error pops up that seems related to the metadata issue
Error: torrentstream: Could not fetch AniDB media: Get "https://api.ani.zip/mappings?anilist_id=163270": dial tcp: lookup api.ani.zip: getaddrinfow: The requested name is valid, but no data of the requested type was found.
No response
1.5.1
Windows
Describe the bug
A clear and concise description of what the bug is.
Am running it on headless raspberry pi and cannot access from my iPad browser at all
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop:
Seanime:
Additional context
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
Idk about mpc-hc but vlc is known to break with heavy typesetting in fansubs, and often fanusb groups only test their subs with mpv so it'd be nice to have mpv support.
ikik fansubs in this day and age but since you're targeting a niche anyway might as well make sure it works with them properly.
Describe the solution you'd like
I haven't looked at the code so idk how player recognition currently works but mpv has extensive documentation that can be used to add support for it.
Additional context
Nothing
Low
Authentication
When a user logs in, toasts showing "no account found" are displayed because the server tries to fetch anilist data before the account variable is set.
No response
v1.2.0
Windows
No response
Ran into a small issue with discord rich presence, unsure of how to fix it
INF discordrpc: Discord Rich Presence enabled
2024-04-22 18:51:08 ERR discordrpc: rich presence enabled but failed to create discord rpc client error="i/o timeout"
You might not always be sitting at your desk when watching anime, but instead be on the couch for example, where access to a mouse is less convenient. Access to a keyboard is much easier, for example through a remote or game controller. At the moment, I don't see a way to properly navigate the site with such devices.
Most remotes/controllers can act as keyboards, so keyboard navigation seems like the most general purpose solution. Making everything usable with keyboard only might be a larger undertaking, but at least the basic actions for everyday use like navigating the library and starting playback should be feasible. That would roughly include:
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
The long titles just get cut short
Describe the solution you'd like
A clear and concise description of what you want to happen.
I suggest to add some fade
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
Would be useful as an alternative to qbittorent, would allow alternative clients to simply use this folder as a watch folder.
Describe the solution you'd like
Have the client download the .torrent files instead of automatically sending it to qbittorent. It would be great if the folder they are sent to would be changeable.
Additional context
None
To Reproduce
Steps to reproduce the behavior:
Seanime:
Low
Other
You may run into the Access is denied
error which stops the update process. This happens because Windows locks files from deletion when they are being used by other processes (in this case, the browser or the explorer)
Temporary solution:
backup_restore_if_failed
No response
v1.5.3+
Windows
No response
Low
UI
If Anilist is set to "10 Point Decimal" mode, the score does no longer show (the score field is empty). It is also not possible to set a decimal score, it does not accept a period as a valid input character. I haven't tested it, but considering 10 is the maximum score, similar issues might occur in "100 Point" mode.
Decimal scores should show correctly and input should not be restricted to whole numbers.
v1.4.3
Linux
Describe the bug
Incorrect in-app documentation. The default assets path is set to '$SEANIME_DATA_DIR/assets'
. By default, users should create a directory named assets
in the config dir. External docs.
Images should be in a folder called "assets" at the root of your Seanime installation.
Expected behavior
Images should be in a directory whose location is configurable in your config file.
Seanime:
Right now we are using batch download or download via torrent. Few torrents are dead
In addition to torrent download is it possible to add batch download or download from websites like gogoanime or anix.to
Currently i use Taiga for anime and Houdoku for manga to display rich presence but after Seanime and your amazing updates i want to only use seanime for everything.
similar to https://github.com/Radiicall/jellyfin-rpc
Not sure
Other
when running the application through cloudflare or any other proxy that uses offers https the application won't work as it tries to use ws instead of wss.
js errror:
Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
No response
v1.4.3
Linux
No response
Describe the bug
Program doesn't start properly when accessing 'http://127.0.0.1:43211/' after running the server for the first time.
To Reproduce
Expected behavior
The "getting started" page should open for setting up Anilist and other information for the server to work
Desktop:
Seanime:
Additional context
Seanime was never used on this computer, MPC-HC was setup on the port specified.
web/getting-started.html is indeed not on the installation folder from the release zip downloaded.
Seanime crashed when I scanned my library and it encountered a weird folder structure
To Reproduce
Here the folder structure that crashed Seanime
When I removed the Opening folder it could scan it perfectly
Expected behavior
Seanime not crashing and giving the user feedback on which folder structure cannot be scanned
Screenshots
Here the error I got
Desktop:
Seanime:
This is my first issue I write on github so please be indulgent ^^
Low
Anime Library - Media Player
Mpc-hc player minimized when starting up in latest version
Player open up on top of other windows
1.5.2
Windows
No response
Instead of running the exe and going to browser make an app which will be installed into our OS. Also edit layout is not there when the server starts but when I got my list or downloads or any other page it automatically pops up in the sidebar ( which shouldn't cause I read in the latest update that it is integrated into settings)
Please reply 😊
Not sure
Anime Library - Media Player
When I am using online streaming feature only the first episode is getting synced with anilist from the next episode onwards its not happening.
The syncing should be automatic
v1.5.2
Windows
No response
Describe the bug
After the Anilist callback redirection, the page is awaiting socket connection but the query client still sends multiple login requests to the server due to the retry config. This causes multiple calls to init server modules and in turn displays a ton a toasts on the client.
Expected behavior
The client should wait for the socket connection to be established before sending the login request to the server.
Seanime:
A player that can be used in website.
If we download any anime via torrent and want to stream offline instead of MPV,VLC or some other player it would be better if we had a integrated player in website that tracks our progress.
Describe the bug
'Resume torrent' action is incorrectly mapped to the StopTorrents
method in qBittorrent implementation.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Torrent should be resumed.
Seanime:
Not sure
Anime - Streaming
bolt.Close()
error log from anacrolix/torrentTorrent client should be re-initialized without any issues. A possible fix could be deleting the entire temporary directory.
v1.5.0
Windows
No response
Usability is affected
Browsing
The table disappears when there are no unread chapters, making it impossible to see all chapters.
Temporary fix
Do not mark all chapters as read.
An empty table should be shown when there are no unread chapters and "Show unread" is selected.
v1.4.0
Windows
2024-02-22 00:07:12 DBG autodownloader: Auto Downloader started
2024-02-22 00:07:12 TRC autodownloader: Checking for new episodes from Nyaa
2024-02-22 00:07:13 TRC Success latency=0s method=GET status=200 url=/api/v1/auto-downloader/rules
2024-02-22 00:07:33 ERR autodownloader: Failed to fetch torrents from Nyaa error="Get "https://nyaa.si/?page=rss&q=+&c=1_2&s=seeders&o=desc\": dial tcp 13.127.247.216:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond."
In my browser I am using cloudflare since the site does not open in default dns.
Also when I am searching for torrent for new episodes no result is shown. Might be same issue.
2024-02-22 00:10:47 DBG nyaa query: [(metallic rouge)(07|e07|e07v|07v|ep07|ep7)]
2024-02-22 00:10:51 DBG nyaa query: [(metallic rouge)(00|e00|e00v|00v|ep00|ep0)]
2024-02-22 00:10:52 DBG nyaa query: [(metallic rouge)(06|e06|e06v|06v|ep06|ep6)]
2024-02-22 00:11:08 TRC Success latency=21.0477164s method=POST status=200 url=/api/v1/nyaa/search
2024-02-22 00:11:12 TRC Success latency=21.0539373s method=POST status=200 url=/api/v1/nyaa/search
2024-02-22 00:11:13 TRC Success latency=21.0442822s method=POST status=200 url=/api/v1/nyaa/search
Describe the bug
Program crashes after setup.
To Reproduce
Steps to reproduce the behavior:
Running the executable again causes the same error.
Desktop:
Seanime:
Additional context
logfile
I'm an linux bigginer, and using Linux Mint.
After double click and install "seanime-1.0.0_Linux_x86_64.deb", installation was successful, but I cannot find runnable binary anywhere.
However, it is also not described how to run Seanime in current docs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.