c6168be8b1
* Tag Search + Tests + Search slight refactor First commit improving search. Different struct have their own file with their tests. This way of separating struct by files is inspired by the go packages I've seen so far. Added new behaviour as discussed in #1334 * fix fallback to ES * Added some comments to explain PG fallback + log err moved * Refactored search Nearly fully covered WhereParams struct has disappeared for Query struct instead In DB model, we use an interface implementing Query struct methods * 1rst Refactor of Tags (WTF already?!) Prepare Tags for the refactored system. Now there will be descriptive tags for a particular release (ecchi, BDSM, ....) and typed tags. Typed tags are tags relevant to all torrents and can be limited to some input value. For example, video quality is a typed tag limited to some values (hd, full hd, sd, ...). In the same way, anidbid is also a typed tag but doesn't have default values. Furthermore, the location storage of tags have changed, now accepted descriptive tags are stored in the torrents table in the column "tags" and they are separated by commas. In the opposite, accepted typed tags can have have their own column in the torrents table. For example, anidbid, vndbid will populate the column DbID when accepted. On the other hand, videoquality will populate the same way as descriptive tags. This behaviour depends on the callbackOnType function in tag/helpers.go * fix for modtools :') * Added anidb, vndb, dlsite & vmdb id fields in torrent model. Tags don't have an accepted field anymore. Accepted Tags are in torrent.AcceptedTags and non-accepted ones in torrrent.Tags. New Helper + New Changelog for translation string. * New upload/edit form for torrent tags. Now the inputs are dynamically generated by the helper tag_form. No more modal window in those form, only inputs. Support of tags in API New translation string for the link to the modal on torrent view. More comments in the functions for tags * Improving how config for tags work. Adding a test on them with understandable messages. Config for tags have now a Field attribute which is linked to the Torrent model. For example anidbid tag type has now a AnidbID field in config which is the name of the field in torrent model (AnidbID). Every new tag type need to have a field attribute with its counterpart in torrent Model. Fixing some errors * Fix compile error + Tests Errors * Improve performance by caching the list of tags with an index Adding/removing tags works/tested New translation strings TODO: test/fix adding tag on upload/edit * Mini fix to display video quality + tags works/tested on modo edit * Fix editing tags on modpanel * Edit tags works * Add translation string * Add search backend for tags. ?tags=xxx,eee,ddd ?anidb=21 ?vndb=23 ?vgmdb=24 ?vq=full_hd * Fix Ajax tag Removal&Add * Added form for descriptive tags * Forgot to add the link between database and form for descriptive tags. * Adding the increase/decrease pantsu for descriptive tags * Fix #1370 * When you actually forgot to commit files after having forgotten commits
218 lignes
8,6 Kio
YAML
218 lignes
8,6 Kio
YAML
# Default Configuration file for NyaaPantsu
|
|
# PLEASE, do NOT change default_config.yml, create your own config.yml
|
|
|
|
# Host of server
|
|
host: localhost
|
|
# Version of the app
|
|
version: "1.0.1"
|
|
# port of server
|
|
port: 9999
|
|
# database type
|
|
db_type: sqlite3
|
|
# DBParams will be directly passed to Gorm, and its internal structure depends on the dialect for each db type
|
|
db_params: ./nyaa.db?cache_size=50
|
|
# logmode for database
|
|
db_logmode: default
|
|
# Environment should be one of: DEVELOPMENT, TEST, PRODUCTION
|
|
environment: DEVELOPMENT
|
|
# AuthTokenExpirationDay : Number of Days for token expiration when logged in
|
|
auth_token_expiration: 1000
|
|
# EnableSecureCSRF : Enable CSRF https mode : True if website support https, false otherwise (eg. testing locally: false)
|
|
enable_secure_csrf: true
|
|
description_length: 10000
|
|
comment_length: 2000
|
|
# the default config for web addresses
|
|
web_address:
|
|
# Nyaa : Origin of the website
|
|
nyaa: https://nyaa.pantsu.cat
|
|
# Sukebei : Origin of the sukebei website
|
|
sukebei: https://sukebei.pantsu.cat
|
|
# Status : Origin of the status website
|
|
status: https://status.pantsu.cat
|
|
# the default config for session cookies
|
|
cookies:
|
|
# DomainName : The host domain so the cookies can be shared across subdomains
|
|
domain_name: pantsu.cat
|
|
# MaxAge : The expiration time of sessions cookies in seconds (default: 7 days)
|
|
max_age: 604800
|
|
# HashKey : 64 byte key used to authenticate cookies using HMAC. Leave blank for a random key after each restart.
|
|
hash_key:
|
|
# EncryptionKey : 32 byte key used to encrypt values. Leave blank for a random key after each restart.
|
|
encryption_key:
|
|
# the default config for bittorrent scraping
|
|
scraper:
|
|
addr: :9999
|
|
workers: 4
|
|
interval: 3600
|
|
trackers:
|
|
- {url: "udp://tracker.coppersurfer.tk:6969/", name: coppersurfer.tk}
|
|
# Config by default for the cache
|
|
cache:
|
|
dialect: nop
|
|
# Size by default for the cache
|
|
size: 1024
|
|
search:
|
|
enable_es: true
|
|
# default search analyzer for ES
|
|
es_analyze: nyaapantsu_search_analyzer
|
|
# default search index for ES
|
|
es_index: nyaapantsu
|
|
# Name of the type in the es mapping
|
|
es_type: torrents
|
|
# Default configuration for i2p
|
|
#i2p:
|
|
# name:
|
|
# addr:
|
|
# keyfile:
|
|
# Default configuration for metainfofetcher
|
|
metainfo_fetcher:
|
|
queue_size: 10
|
|
timeout: 120
|
|
max_days: 90
|
|
base_fail_cooldown: 1800
|
|
max_fail_cooldown: 172800
|
|
wake_up_interval: 300
|
|
# limits are in KiB, zero means no limit
|
|
upload_rate_limit: 1024
|
|
download_rate_limit: 1024
|
|
fetch_new_torrents_only: true
|
|
i18n:
|
|
# Default configuration for translation directory
|
|
directory: translations
|
|
# Default configuration for language
|
|
default_language: en-us
|
|
torrents:
|
|
# TorrentStatus : Config of different status id for torrents
|
|
status: [true, true, true, true, true, true]
|
|
# TorrentSukebeiCategories : Config for Sukebei categories
|
|
sukebei_categories: {"1_": "art", "1_1": "art_anime", "1_2": "art_doujinshi", "1_3": "art_games", "1_4": "art_manga", "1_5": "art_pictures", "2_": "real_life", "2_1": "real_life_photobooks_and_pictures", "2_2": "real_life_videos"}
|
|
# TorrentCleanCategories : Config for Site categories
|
|
clean_categories: {"3_": "anime", "3_12": "anime_amv", "3_5": "anime_english_translated", "3_13": "anime_non_english_translated", "3_6": "anime_raw", "2_": "audio", "2_3": "audio_lossless", "2_4": "audio_lossy", "4_": "literature", "4_7": "literature_english_translated", "4_8": "literature_raw", "4_14": "literature_non_english_translated", "5_": "live_action", "5_9": "live_action_english_translated", "5_10": "live_action_idol_pv", "5_18": "live_action_non_english_translated", "5_11": "live_action_raw", "6_": "pictures", "6_15": "pictures_graphics", "6_16": "pictures_photos", "1_": "software", "1_1": "software_applications", "1_2": "software_games"}
|
|
# EnglishOnlyCategories : Which categories will only accept English torrents
|
|
english_only_categories: ["3_5", "4_7", "5_9"]
|
|
# NonEnglishOnlyCategories : Which categories will only accept non-English torrents
|
|
non_english_only_categories: ["3_13", "4_14", "5_18"]
|
|
# AdditionalLanguages : Which languages are available for selection when uploading a torrent, aside from
|
|
# the ones we have translations.
|
|
additional_languages: ["es-mx"]
|
|
# TorrentFileStorage : Path to default torrent storage location (eg /var/www/wherever/you/want)
|
|
filestorage:
|
|
# TorrentStorageLink : Url of torrent file download location (eg https://your.site/somewhere/%s.torrent)
|
|
storage_link:
|
|
# TorrentCacheLink : Url of torrent site cache
|
|
cache_link: http://anicache.com/torrent/%s.torrent
|
|
# UploadsDisabled : Disable uploads for everyone except below
|
|
uploads_disabled: false
|
|
# AdminsAreStillAllowedTo : Enable admin torrent upload even if UploadsDisabled is true
|
|
admins_are_still_allowed_to: true
|
|
# TrustedUsersAreStillAllowedTo : Enable trusted users torrent upload even if UploadsDisabled is true
|
|
trusted_users_are_still_allowed_to: true
|
|
trackers:
|
|
# Trackers : Default trackers supported
|
|
default:
|
|
- udp://tracker.doko.moe:6969
|
|
- udp://tracker.coppersurfer.tk:6969
|
|
- udp://tracker.zer0day.to:1337/announce
|
|
- udp://tracker.leechers-paradise.org:6969
|
|
- udp://explodie.org:6969
|
|
- udp://tracker.opentrackr.org:1337
|
|
- udp://tracker.internetwarriors.net:1337/announce
|
|
- http://mgtracker.org:6969/announce
|
|
- udp://ipv6.leechers-paradise.org:6969/announce
|
|
- http://nyaa.tracker.wf:7777/announce
|
|
- http://sukebei.tracker.wf:7777/announce
|
|
- http://tracker.anirena.com:80/announce
|
|
- http://anidex.moe:6969/announce
|
|
# NeededTrackers : Array indexes of Trackers for needed tracker in a torrent file
|
|
needed:
|
|
- 0
|
|
# TorrentOrder : Default sorting field for torrents
|
|
order: date
|
|
# TorrentSort : Default sorting order for torrents
|
|
sort: DESC
|
|
tags:
|
|
# Torrent Tag Max weight for automatic system approval
|
|
max_weight: 100.00
|
|
# Default tags that have no type, will be saved in AcceptedTags field
|
|
default: tags
|
|
# Array of tag types allowed for now
|
|
types:
|
|
- name: anidbid
|
|
field: AnidbID
|
|
defaults:
|
|
- db
|
|
- name: vndbid
|
|
field: VndbID
|
|
- name: dlsite
|
|
field: Dlsite
|
|
- name: vgmdbid
|
|
field: VgmdbID
|
|
- name: videoquality
|
|
field: VideoQuality
|
|
defaults:
|
|
- bluray
|
|
- full_hd
|
|
- hd
|
|
- sd
|
|
users:
|
|
default_notifications_settings: {"new_torrent": true, "new_torrent_email": false, "new_comment": true, "new_comment_email": false, "new_responses": false, "new_responses_email": false, "new_follower": false, "new_follower_email": false, "followed": false, "followed_email": false}
|
|
navigation:
|
|
torrents_per_page: 50
|
|
max_torrents_per_page: 300
|
|
log:
|
|
# AccessLogFilePath : Path to logs access
|
|
access_log_filepath: log/access
|
|
# AccessLogFileExtension : Extension for log file
|
|
access_log_fileextension: .txt
|
|
# AccessLogMaxSize : Size max for a log file in megabytes
|
|
access_log_max_size: 5
|
|
# AccessLogMaxBackups : Number of file for logs
|
|
access_log_max_backups: 7
|
|
# AccessLogMaxAge : Number of days that we keep logs
|
|
access_log_max_age: 30
|
|
# ErrorLogFilePath : Path to log errors
|
|
error_log_filepath: log/error
|
|
# ErrorLogFileExtension : Extension for log file
|
|
error_log_fileextension: .json
|
|
# ErrorLogMaxSize : Size max for a log file in megabytes
|
|
error_log_max_size: 10
|
|
# ErrorLogMaxBackups : Number of file for logs
|
|
error_log_max_backups: 7
|
|
# ErrorLogMaxAge : Number of days that we keep logs
|
|
error_log_max_age: 30
|
|
email:
|
|
# SendEmail : Enable Email
|
|
send_email: true
|
|
# EmailFrom : email address by default
|
|
from: donotrespond@nyaa.pantsu.cat
|
|
# EmailTestTo : when testing to who send email
|
|
test_to:
|
|
# EmailHost : Host of mail server
|
|
host: localhost
|
|
# EmailUsername : Username needed for the connection
|
|
username:
|
|
# EmailPassword : Password needed for the connection
|
|
password:
|
|
# EmailPort : Mail Server port
|
|
port: 465
|
|
# EmailTimeout : Timeout for waiting server response
|
|
timeout: 10000000000
|
|
models:
|
|
# LastOldTorrentID is the highest torrent ID that was copied from the original Nyaa
|
|
last_old_torrent_id: 923000
|
|
# TorrentsTableName : Name of torrent table in DB
|
|
torrents_table_name: torrents
|
|
# ReportsTableName : Name of torrent report table in DB
|
|
reports_table_name: torrent_reports
|
|
# CommentsTableName : Name of comments table in DB
|
|
comments_table_name: comments
|
|
# UploadsOldTableName : Name of uploads table in DB
|
|
uploads_old_table_name: user_uploads_old
|
|
# FilesTableName : Name of files table in DB
|
|
files_table_name: files
|
|
# NotificationTableName : Name of notifications table in DB
|
|
notifications_table_name: notifications
|
|
# ActivitiesTableName : Name of activities log table in DB
|
|
activities_table_name: activities
|
|
# NotificationTableName : Name of scrape table in DB
|
|
scrape_table_name: scrape
|