* Update upload.go
* Update helpers.go
* Update template_test.go
* Update upload_multiple.jet.html
* change variable names
* wrong copypaste
* change variable name
* ditto
* Fix travis
* Update main.css
* Update upload.go
* Update upload.jet.html
* Update main.css
* Update upload.go
* More compact form
* CSS changes to go along
* Update main.css
* Update upload.jet.html
* Slightly lower bottom margin
* Update upload_multiple.jet.html
* tomorrow color adjustements
* small css adjustements
* Update upload.go
* Update default_config.yml
* Update default_config.yml
* Update structs.go
* Update user.go
* Update structs.go
* Update upload.go
* Update default_config.yml
* Update upload_multiple.jet.html
* Update upload.go
* Update upload.jet.html
* Update template_test.go
* this one is optional for anidex
* Update default_config.yml
* Possible improvement
As mentionned in my comment, it seems that having a checkbox already checked and disabled for logged in user + having the input text for apikey is a bit tedious.
Moreover, asking to check and fill the input text to upload in anidex when you are not logged is doing things twice. If you don't want to upload to anidex, don't fill the input.
So this commit push a new behaviour:
* If you are logged in and you have filled your anidex/nyaasi api key : the form should only show the checkbox asking if you want to upload to nyaasi.
* If you're not logged in or you don't have filled your api key in your profile settings: you only show the input text for the api key and not the checkbox. If someone wants to upload to nyaasi/anidex, he will just need to fill the input.
* This adds back the support of anonymous upload when logged in or not.
This works simply by checking if the user wants to upload as anon (when he checks the checkbox "upload as anonymous") or by checking the emptyness of apikey.
+ reverts the condition statements since it was needed to have apikey empty
* Forgot to save this file
* This commit adds the go routines for each upload service (anidex, nyaasi, tosho).
New controller and url to check the upload status (/upload/status/:id).
If you add ?json at the end, it outputs a json format of the multi upload status.
To prevent memory overload, we only keep in memory the multiupload status for 5 minutes.
Moved multipleform struct from templates to upload utils.
* fix form display on classic theme
* This commit adds:
* Javascript refreshing of the upload status
* Localization of the pages
* Fixed some bugs
This works, only need to get torrent file now.
* Added a new function to get the Path to the torrent file.
* Added a function to check that a torrent file exists and if not generate it on multiupload
* Enabled file upload through http post request to anidex
* Fixed bugs
* Modified the behaviour to generate torrent preivously. It is a synchrone function now. So we need to make it asynchronous in download.go
Now torrents file are always generated at upload time in a background processus with the correct trackers (needed ones + the ones provided by the user).
I made the anidex tracker as a needed one to allow multiupload even if the user hasn't included in his torrent file/magnet url.
* Moving deadtrackers list to default config
Support torrent file creation when upload without scraping
* Fix possible bug where no one is seeding a torrent yet (first time upload)
Add primary tracker in torrent file
* Fixing issue with boolean pointer for private torrent
* fixing index out of range for announcelist filtering
Fixing anidex tracker not found
* Fixing lang id error
* Anidex upload works
* Fix for multiupload with magnet
* This adds TokyoTosho support. Since TokyoTosho API only support upload by URL (and not torrent file upload). We need to make the download url available without ddos protection.
Also TokyoTosho doesn't need a category select. Since it does have limited option, we can automatically convert our categories to the tokyotosho one.
* Removing the folder tosho and put categories.go directly in upload package.
Added category conversion for nyaasi too.
Added tests on category conversion.
* This should add nyaasi support.
Is not tested though.
* Updated defaut config with new nyaa.si behaviour?
* Forgot to commit this file
* missing background color,
fix missing background color on markdown editor on torrent view page
fix missing classic styling on "Upload to Nyaa/Sukebei" button
* Fix theme toggler that didn't behave as intended
Fix theme toggler that didn't behave as intended when the user was logged in and his theme cookie had a different value than his user theme setting
* Classic theme default on nyaa.pt
* Add new followers directly to user.Followers
* Update user.go
* Remove useless condition
* Query an update of user followers if at 0 when looking at his profile
* Fix comment not appearing until you refreshed the torrent page
* call ViewHandler so that comments visually update properly
* Remove now useless imports
* Add "uploader" userstatus in comment
* GetLikings() & GetFollowers() now return count too
* Don't update follower count here
* Update follower count directly here
* show liking count
* Update user.go
* Update profile.jet.html
* Update torrentParam.go
* Fix locked torrents that were shown even when they should not
* Update torrentParam_test.go
* remove inline styling
* Update main.css
* Update upload.jet.html
* Update main.css
* Update tomorrow.css
* Update classic.css
* Update classic_colors.css
* Update index_site.jet.html
* Make announcements support markdown
* Add markdown form to announcement creation
* fix "report" text position
* Add exclude search option to exclude words
* Make sure the "NameLike" value is the search query because we edit it during a search
* Show search content in page title for /feed too
* rollback
* Add "Search" variable that shows exactly what is being searched
* Use "Search.Search" variable here instead of NameLike because NameLike is edited
* Update torrentParam_test.go
* Update torrentParam.go
* remove redundant spaces from NameLike
* Update torrentParam.go
* Update torrentParam.go
* Update torrentParam.go
* Update torrentParam.go
* turn date input into type date
* bigger date inputs
* add support for YYYY-MM-DD dates
* rollback this change
* rollback
* Update search.jet.html
* Update helpers.go
* Update template_functions.go
* Update torrentParam.go
* only uploader & staff can comment on locked torrents
* Add "Upload to Nyaa/Sukebei" button for mods
* Update torrentlist.jet.html
* Update view.jet.html
* Update view.jet.html
* fix wrong page title for notifications page
* Fix "torrent is being generated" message showing up even when the torrent couldn't be generated
* Add janitor user status
* Remove usage of deprecated HasAdmin() function
* Give Janitors access to mod panel
* Stop using deprecated HasAdmin() function
* Stop using deprecated HasAdmin() function
* Update edit.go
* Update profile.go
* Rollback bad changes, remove redundant email check and stop using deprecated function
* Show every userstatus (member, janitor, banned, mod) in comments
* Return empty status if anonymous
* Show no userstatus for anonymous profile
* Show moderation link to janitors too
* Stop using deprecated HasAdmin() function
* Stop using deprecated HasAdmin() function
* Stop using deprecated HasAdmin() function
* Add Janitor to userstatus select in user edit
* "Janitor" translation string
* didnt mean to commit this change
* rollback wrongfully comitted changes
* rollback commit
* Update CHANGELOG.md
* Fix wrong id for translation
* remove deprecated HasAdmin() function again
* change name of variable used in comment loop for clarity purposes
* visual cue for locked torrents in torrent listing for admins
* add visual cues for hidden torrents in admin torrent listing
* Dont show delete buttons for janitors
* janitor cannot delete torrents
* show block/unblock button in torrent list for janitors instead of delete button
* fix function that didnt get executed
* add ban buttons on userlist & visual cue for banned users
* Fix "user successfully deleted" message showing even if user wasnt deleted
* Add "ban" button, no "delete" button for jantiors
* add "unban" and "ban" translation strings
* add "unban" and "ban" translation strings
* different <form> for ban button
* Update index.jet.html
* add userprofile ban route
* add toggleBan() function, janitors dont need captcha either
* fix panic error when deleting an anonymous comment
* add user_banned_by and user_unbanned_by
* add user_banned_by and user_unbanned_by
* Make ToggleBan() return whether or not the user is now banned
* Add handler for /ban route
* change log filter
* hide locked torrents from regular users
* hide locked torrents from regular users
* hide locked torrent from api search for regular users
* change function to CurrentOrJanitor
* change function to currentorjanitor
* change function to currentorjanitor
* add CurrentOrJanitor function
* fix extra (
* fix extra ) and wrong variable name
* Fix wrong value for janitor user status
* Fix user edit that did not work because of "unique constraint user.emails" error
* only immediately visually update user if user has been updated successfully
* use FindAllForAdminsOrderBy in order to preload users
* create FindAllForAdminsOrderBy that preloads users
* Show username instead of ID in Uploader column in admin panel
* Fix userprofile buttons overflowing at some specific resolutions
* Mods can set users as janitors
* Show ban/unban buttons on userprofile for janitors
* Identical styling for usermenu links and buttons
* dont show ban buttons on other staff
* add ban message through get parameter
* make toggleBan() trigger user update
* Add "user_banned" and "user_unbanned"
* add "user_banned" and "user_unbanned"
* Visual cue for banned user
* banned users can still log in
* visual cue for banned user in badgemenu
* locked status if banned user on upload
* banned users cannot comment
* Put "banned" text between ()
* add GetCategoryName() to template_test
* add GetCategoryName() that returns full category name from full category string
* Show search content in page title if it exists, or search category if it exists, otherwise shows "Home"
* error message when user uploads an torrent & is banned
* add torrent_uploaded_locked
* add torrent_uploaded_locked
* fix delete definitely button that never appeared
* Show delete definitely button on admin panel index
* admins can undelete a torrent by editing it's status
* Trigger ViewHandler() directly instead of redirecting
* Render the template directly instead of triggering torrent view handler
* bigger usermenu buttons once responsive design kicks in
* make btn-* class non-bold
* Responsive notification page
* visual cue for locked torrents in torrent listing
* Update search.go
* Update search.go
* Update api.go
* Update helpers.go
* Update template.go
* Update torrentParam.go
* remove "hidden" class
* Update search.go
* fix an html error
* Add files via upload
* Update admin.jet.html
* Update index.go
* Update index.go
* Update router.go
* Update torrentParam_test.go
* Update torrentParam_test.go
* fix extra "
* fix bad copypaste
* Update CHANGELOG.md
* Update guidelines.jet.html
* Update CHANGELOG.md
* add Guidelines and Moderation Guidelines
* fix missing commas
* Update torrentlist.jet.html
* Update find.go
* Update stats.go
* Update view.jet.html
* Update index.jet.html
* Increase max torrent per page
* Increase max torrent per page
* fix html error by changing an ID into a class
* change css selector from id to class
* Update oldNav.jet.html
* Update classic.css
* Update captcha.jet.html
* Fix order of torrents in admin panel index
* Update settings.jet.html
* make lang postform have same name as cookie
* Update comments.go
* Update commentlist.jet.html
* Update comments.go
When you search a username and you have a userid in the url, the conditions string doesn't have "AND" in it. I made the username search a priority and if there is not username provided, it falls back to userid in url.
* Fix report creation from report template for anonymous users
* small adjustement for styling of usernames in comment
* lower margin-top for comment content
* Update en-us.all.json
* Update CHANGELOG.md
* fix torrent link button's styling getting messed up from
* Add possibility of reporting without JS
* Add report message input and new report reason to /report/:id page
* add new report reason here too
* Update en-us.all.json
* Update CHANGELOG.md
* only show if not sukebei
* ditto
* fix label for value
* ditto
* fix overly big report message column
* Update main.css
* Update search.jet.html
* Add possibility of getting a torrent by Hash in refine
* Update search.go
* Update search.go
* fix template_test
* ditto
* fix Sprintf wrongly using a Token
* rollback that
* Update callback.go
* remove line that creates error
* fix travis
* [WIP] Torrent Generation on not found error
As asked in #1517, it allows on-the-fly torrent generation. Since it uses magnet links, it needs some time to connect to peers. So it can't be instant generation, we need the user to wait and try after a minute at least.
* Replace Fatal by simple error
* attempt at fixing travis
* del
* Add Anacrolyx dependency
* Add back difflib
* Remove .torrent suffix in the url example
* Add some explanations when file missing page shown
* Ignore downloads directory
* Either use cache (third-party site) or own download directory
* Wrong import
* If there is an error then it means we aren't generating a torrent file
May it be "torrent not found" or "We do not store torrent files" which are the two only existing errors for this page
* hash is never empty
* TorrentLink may be empty at times
So we add a /download/:hash link if it is
* Update README.md
* Made a mistake here, need to check if false
* Update en-us.all.json
* Update CHANGELOG.md
* Torrent file generation can be triggered by click on button if JS enabled
* Update download.go
* Update download.go
* Use c.JSON instead of text/template
* Return to default behavior if we don't generate the file
* Don't do the query if returned to default behavior
* Add "Could not generate torrent file" error
* Fix JS condition & lower delay until button updates
* Start download automatically once torrent file is generated
* Fix torrentFileExists() constantly returning false if external torrent download URL
* torrent-view-data is two tables instead of one
This allows the removal of useless things without any problem (e.g Website link), but also a better responsibe design since the previous one separated stats after a certain res looking very wonky
* CSS changes to go along
* Remove useless <b></b>
* Update main.css
* In torrentFileExists, check if filestorage path exists instead of looking at the domain in torrent link
When checking if the file is stored on another server i used to simply check if the domain name was inside the torrent link, but we can straight up check for filestorage length
* Fix JS of on-demand stat fetching
* ScrapeAge variable accessible through view.jet.html
Contains last scraped time in hours, is at -1 is torrent has never been scraped
Stats will get updated if it's either at -1 or above 1460 (2 months old)
* Refresh stats if older than two months OR unknown and older than 24h
Show last scraped date even if stats are unknown
* Add StatsObsolete variable to torrent
Indicating if:
- They can be shown
- They need to be updated
* Update scraped data even if Unknown, prevent users from trying to fetch stats every seconds
* Torrent file stored locally by default
* no need to do all of that if no filestorage
* fix filestorage path
* Fix torrent download button stuck on "Generating torrent file" at rare times
* fix some css rules that didn't work on IE
* Fix panic error
Seems like this error is a known bug from anacrolyx torrent https://github.com/anacrolix/torrent/issues/83
To prevent it, I'm creating a single client and modifying the socket.go to make it not raise a panic but a simple error log.
* Fix Api documetation
Fix#1682
* Remove unused SubCategory field from struct TorrentRequest
* Change `category` argument in documentation to correct `c` (same key as the one in Search)
* Apidoc generation
* Remove SubCategory from template_test's torrentValidator
* Update template_test.go
* Update view.jet.html
* reduce the time limit of how fast stats.go is supposed to be called
* Update router.go
* add subcategory display in old navigation
* css to go along
* remove useless variable
* Update oldNav.jet.html
* fix travis
* fix missing css line that had user search input & link way wider than they should've been
* "See more torrents from" now make use of user torrent search route
* remove useless variable
* use stat obsolete variable in listing instead of checking the date
* fix wrong translation string being used on user edit page for mods
* fix css rule that did not apply
* fix error in stats.go
* stats.go scrapes default trackers if torrent has no tracker
* remove useless thing
* change behavior of right arrow in page list (now goes to latest page)
* fix { too much
* Update view.jet.html
* Update view.jet.html
* pin user search input & link at the bottom of user page
* HTML to go along
* Different color for cookie warning on sukebei
* Copy paste improvement from another PR since it's going to take time until it's complete
* ditto
* ditto
* ditto
* Update main.css
* JS fallback for /settings page on mirrors
* Update main.js
* Update settings.jet.html
* Fix invalid comment date when JS is enabled
* fix travis
* fix wrong url in admin torrent list
* Fix wrong pubDate for /feed
* Different function name
* same changes as rss for magnet rss
* travis test
* fix delete button on torrent view
* Update edit.jet.html
* Update index.jet.html
* Update userlist.jet.html
* Update torrentlist.jet.html
* bottom margin for comment avatar
* Resetting API key now redirects you back to edit page
* move important faq things up in the faq
* Add div as high as header instead of top margin for #content
* Fix modtools showing behind ad
* No margin-top for body
* add functions that will be used in the future to file.go
* Update create.go
* fix css rule that didn't apply
* Fix some JS of upload form that kept shitting out errors since i updated the upload form
* Update upload.jet.html
* fix duplicate id on a form
* Fix very very slightly misaligned input
* fix html error on filelist
* Add FullDate variable to torrents
* Create Go function that returns an user-friendly date when fed a go date
* akuma must hate me for butchering the template_functions_test file
* Make use of said function in view.jet.html
* Forgot to vars.set the function
* Remove useless title
* Make use of function in listing
* modify JS to fetch full date from title instead of innerText
* Fix title date & two functions looping on non-existing objects
* Show full dates in an AM/PM format like on live
* Torrent dates on UTC+0 by default
* lower top margin for comment usernames & avatar
* Update classic.css
* temporary workaround to hide quadrupled comments
* Update view.jet.html
* Add "search from user" input below user rss link, change styling of follow button to fit other links
* all into the same div
* Remove padding of usersearch input in panel, remove useless css rule
* min-width for user buttons, max-width for the input
* Don't show "search from this user" if it's your profile
* remove max-width when responsive userprofile kicks in
* remove useless css rule
* Update view.jet.html
* le fix
* optimize stats.go a bit and add comments
* Update stats.go
* Update template_functions_test.go
* Update template_functions.go
* Remove hardcoded theme list, generate dynamically
* ditto
* Add possibility of forcing a theme for everyone
* in the .yml config file
* Make it ignore both user settings and cookies
* add forced theme in default theme config struct
* Update publicSettings.go
* fix missing , & travis
* Update template_functions_test.go
* Update main.css
* fix travis
* Update template_functions_test.go
* travis
* Update view.jet.html
* Update router.go
* Create stats.go
* Update view.jet.html
* Update stats.go
* Update stats.go
* rollback
* returns -1 by default
* Update stats.go
* Update stats.go
* Import goscrape & torrent
* copypaste stats.go from scrapers
* travis
* Update stats.go
* Update stats.go
* Put fresh stats into a <span>
* Background-color for freshly fetched stats
* ditto but for tomorrow
* "Loading..." text in case it gets a bit too long
* Stat fetching in controller (missing DB update)
* Update last scraped date too
* update torrent.Scrape tho it doesn't do anything
* forgot to edit a name
* Update scrape.go
* Update stats.go
* Update stats.go
* flush cache to update stats in listing
* Change function name
* Update stats.go
* Update stats.go
* fix travis
* Update view.jet.html
* Update stats.go
* Update stats.go
* Update stats.go
* Update stats.go
* Update stats.go