· 6 years ago · Sep 05, 2019, 01:36 PM
1'use strict';
2
3module.exports = {
4
5 /**------------------------------------------------------------------------------------------------
6 * !IMPORTANT
7 * MEANTORRENT CONFIG START
8 * PLEASE DO NOT MODIFY THE ABOVE LINES !!!
9 --------------------------------------------------------------------------------------------------*/
10
11 meanTorrentConfig: {
12 /**
13 * @app
14 *
15 * App & site settings
16 * NOTE: you can change these value at anytime if you understand it
17 *
18 * @name: site logo name
19 * @domain: site domain
20 * @admin: site admin mail address
21 * @showDemoWarningPopup: if is demo site, show warning popup whene home is opened for the first time.
22 * @cronTimeZone: timezone of cron
23 * @dbTimeZone: timezone of mongo db, in minute
24 * @showClientDebugLog: if true, will console.log all debug info at client side. when your site is prod env, please change this
25 * value to false, then console.log info is not output
26 * @writeServerDebugLog: if true, will console.log all debug info at server side. when your site is prod env, please change this
27 * value to false, then console.log info is not output
28 */
29 app: {
30 name: 'mean.im',
31 domain: 'http://164.68.101.26:3000',
32 admin: 'admin@mean.im',
33 showDemoWarningPopup: true,
34 cronTimeZone: 'Asia/Shanghai',
35 dbTimeZone: 480,
36 showClientDebugLog: true,
37 writeServerDebugLog: true
38 },
39
40 /**
41 * @supported
42 *
43 * Support services settings
44 *
45 * @supportGroupName: site support group name, user can send message to this group
46 * @supportGroupNameDesc: desc of support group name, value of translate string
47 * @supportMailAddress: support group mail address
48 * @mailTicketSupportService: settings mailTicketSupportService status, true is enable, false is disable
49 * @messageTicketSupportService: settings messageTicketSupportService status, true is enable, false is disable
50 * @checkOpenedTicketsInterval: set check opened tickets interval, default 2 minutes
51 * @checkOpenedTicketsInterval_str: string desc of @checkOpenedTicketsInterval
52 *
53 * NOTE:
54 * =====
55 * If mailTicketSupportService is set to true, you MUST set the mailer options in file config/env/development.js and config/env/production.js
56 */
57 support: {
58 supportGroupName: 'Support',
59 supportGroupNameDesc: 'SUPPORT_GROUP_NAME_DESC',
60 supportMailAddress: 'support@mean.im',
61 mailTicketSupportService: false,
62 messageTicketSupportService: true,
63 checkOpenedTicketsInterval: 60 * 1000 * 2,
64 checkOpenedTicketsInterval_str: '2m'
65 },
66
67 /**
68 * @backup
69 *
70 * @enable: if true, meanTorrent will backup mongo db database data with a named '/module/core/client/backup/*.tar'
71 * at midnight every day.
72 * @dir: backup files path
73 */
74 backup: {
75 enable: true,
76 dir: './modules/backup/client/backup/'
77 },
78
79 /**
80 * @language
81 *
82 * Multilingual support settings
83 *
84 * @name: language name
85 * @index: list index in menu
86 * @class: flag icon class, can find flag icon at '/public/lib/flag-icon-css/flags'
87 * @title: language title show in menu item
88 * @enable: setting whether to enable or disable this language support, if false, user can not select it
89 */
90 language: [
91 {name: 'en', index: 0, class: 'flag-icon-gb', title: 'English', enable: true},
92 {name: 'zh', index: 1, class: 'flag-icon-cn', title: '中文', enable: true},
93 {name: 'zh-tw', index: 2, class: 'flag-icon-tw', title: '繁體中文', enable: true}
94
95 ],
96
97 /**
98 * @announce
99 *
100 * tracker server announce settings
101 * NOTE: you can change these value at anytime if you understand it
102 *
103 * @url: announce url, download client will request this url to report uploads and downloads data
104 * @comment: used in admin tools, auto replace torrent make group info with this setting
105 * @announceInterval: interval of twice announce request
106 * @announceInterval_str: string desc of @announceInterval
107 * @announceIdleTime: announce time over @announceInterval this value is inactive peer
108 * @announcePrefix: prefix of torrent file name, is will auto add when user download the torrent files
109 * @clientBlackListUrl: forbidden download client list url, user can view this list to check forbidden client software
110 * @announceLogDays: setting of days to write announce log to db, because the data is too more too big, do not to set a big value
111 * @userDaysLogDays: setting of days to write user days log
112 * @userMonthsLogMonths: setting of months to write user months log
113 * @seedingInFinishedCheck: settings to check whether can seeding an un-download finished torrent
114 * @downloadCheck: announce download(leech) settings
115 * @ratio: if less than this value, can not download(leech)
116 * @checkAfterSignupDays: all users download check start {value} days after signup, so the newest register user has {value} days to upgrade his ratio value,
117 * after {value} days, if less then setting of here, can not download(leech) any things, but can continue seed, unit of day
118 * @announceCheck: announce seed/leech numbers settings
119 * @maxLeechNumberPerUserPerTorrent: settings the max leech numbers of same user on same torrent
120 * @maxSeedNumberPerUserPerTorrent: settings the max seed numbers of same user on same torrent
121 * @peersCheck: send peers list of downloading announce request settings
122 * @peersSendListIncludeOwnSeed: settings whether include own seed peer in download announce request
123 * NOTE: the best value is false, In order to prevent cheating, user can not download data from own seeding.
124 * @ghostCheck:
125 * @ghostPeersIdleTime: setting idle time more than this value is a ghost peer(died), remove it
126 * @ghostPeersIdleTime_str: string desc of @ghostPeersIdleTime
127 * @warningCheck:
128 * @userHnrWarningCheckInterval: setting check users H&R warning interval time, default to 2 hours
129 * @userHnrWarningCheckInterval_str: string desc of @userHnrWarningCheckInterval
130 * @debugAnnounceUser: setting of debug announce user, NOTE: enable this need @app.writeServerDebugLog must be true too
131 * @debugAll: if true, debug all announce user, else debug user in ids list below
132 * @ids: debug announce user id list
133 * @debugClientSideUser: setting of debug client side user
134 * @ids: debug user id list
135 */
136 announce: {
137 url: 'http:localhost:3000/announce',
138 comment: 'MEAN.im GROUP',
139 announceInterval: 60 * 1000 * 10,
140 announceInterval_str: '10m',
141 announceIdleTime: 60 * 1000 * 3,
142 announcePrefix: '{MEAN}.',
143 sourceInfo: '{MEAN.im} Present by meanTorrent.',
144 clientBlackListUrl: '/about/black',
145 announceLogDays: 30,
146 userDaysLogDays: 30,
147 userMonthsLogMonths: 12,
148 seedingInFinishedCheck: true,
149 downloadCheck: {
150 ratio: 1,
151 checkAfterSignupDays: 30
152 },
153 announceCheck: {
154 maxLeechNumberPerUserPerTorrent: 1,
155 maxSeedNumberPerUserPerTorrent: 3
156 },
157 peersCheck: {
158 peersSendListIncludeOwnSeed: true
159 },
160 ghostCheck: {
161 ghostPeersIdleTime: 60 * 60 * 1000 * 24,
162 ghostPeersIdleTime_str: '24h'
163 },
164 warningCheck: {
165 userHnrWarningCheckInterval: 60 * 60 * 1000 * 2,
166 userHnrWarningCheckInterval_str: '2h'
167 },
168 debugAnnounceUser: {
169 debugAll: false,
170 ids: [
171 '59227f9095602327ea1d96ba'
172 ]
173 },
174 debugClientSideUser: {
175 ids: [
176 '59227f9095602327ea1d96ba'
177 ]
178 }
179 },
180
181 /**
182 * @cache
183 *
184 * settings cache data of GET method from $resource
185 *
186 * @maxAge: The number of milliseconds until a newly inserted item expires
187 * @recycleFreq: Determines how often a cache will scan for expired items
188 * @storageMode: Determines the storage medium used by a cache, value of 'memory', 'localStorage' and 'sessionStorage'
189 */
190 cache: {
191 maxAge: 60 * 1000 * 1,
192 recycleFreq: 60 * 1000,
193 storageMode: 'localStorage'
194 },
195
196 /**
197 * @rss
198 *
199 * rss field value settings
200 *
201 * @title: setting title info of rss document
202 * @description: setting description info of rss document
203 * @copyright: setting copyright info of rss document
204 * @managingEditor: setting managingEditor info of rss document
205 * @webMaster: setting webMaster info of rss document
206 * @generator: setting generator info of rss document
207 * @ttl: setting ttl info of rss document, unit of seconds
208 * @pageItemsNumber: setting the items number of rss per page
209 * @image_url: setting image_url info of rss document
210 */
211 rss: {
212 title: '[%s] - RSS torrents',
213 description: 'Latest torrents from [%s]',
214 copyright: 'Copyright (c) [%s] 2012-2017, all rights reserved',
215 managingEditor: 'admin@mean.im (%s Admin)',
216 webMaster: 'webmaster@mean.im (%s Webmaster)',
217 generator: '{MEAN.im} RSS Generator by meanTorrent',
218 ttl: 60,
219 pageItemsNumber: 30,
220 image_url: '/modules/core/client/img/rss.jpeg'
221 },
222
223 /**
224 * @ircAnnounce
225 *
226 * IRC announce server settings
227 * NOTE: you can change these value at anytime if you understand it
228 *
229 * @enable: enable irc announce
230 * @debug: debug mode, more info will log out by console
231 * @server: IRC server address
232 * @port: IRC server port
233 * @nick: IRC announce user nick name, needed with IRC protocol
234 * @userName: IRC announce user username, needed with IRC protocol
235 * @realName: IRC announce user realName, needed with IRC protocol
236 * @channel: IRC announce channel name, the message will send to the appointed channel
237 * @defaultMsgFormat: the default announce message format
238 * @tvserialMsgFormat: the custom announce message format of tv serial type torrent
239 * @showErrors: log and show error info when some error happened
240 * @autoRejoin: auto rejoin into the channel when some event happened cause user part the announce channel
241 * @autoConnect: auto connect & reconnect to IRC server when disconnect from IRC server
242 * @retryCount: reconnect retry times
243 * @retryDelay: reconnect retry delay time, unit in millisecond
244 * @encoding: IRC announce message encoding, default to 'UTF-8'
245 */
246 ircAnnounce: {
247 enable: true,
248 debug: false,
249 server: 'irc.mean.im',
250 port: 16667,
251 nick: 'meanAnnouncer',
252 userName: 'meanTorrent',
253 realName: 'IRC announce client',
254 channel: '#meanAnnounce',
255 defaultMsgFormat: '%s uploaded - torrent: %s, type: %s, size: %d, sale: %s, url: %s, at %s',
256 tvserialMsgFormat: '%s uploaded - torrent: %s, type: %s, size: %d, seasons: %d, episodes: %s, sale: %s, url: %s, at %s',
257 showErrors: true,
258 autoRejoin: true,
259 autoConnect: true,
260 retryCount: 86400,
261 retryDelay: 5000,
262 encoding: 'UTF-8'
263 },
264
265 /**
266 * @access
267 *
268 * setting ip access for site menu
269 *
270 * @admin: setting of access for admin center
271 * @limit: set whether to limit ip to access admin center
272 * @limitedIp: list all allow ip to access admin center, otherwise can not to access
273 * If you limited some vpn ip to access it, please add the vpn ip into the @limitedIp array
274 * If no limited ip, set the @limit to false
275 * @upload: setting of access for torrents uploader
276 * @limitToMakerGroup: setting whether limit the access to resources group for torrents uploader
277 * if false, everyone can upload torrent
278 */
279 access: {
280 admin: {
281 limit: false,
282 limitedIp: ['127.0.0.1']
283 },
284 upload: {
285 limitToMakerGroup: false
286 }
287 },
288
289 /**
290 * @home
291 *
292 * settings for home page
293 *
294 * @showVipBanner: setting whether show vip AD banner
295 * @showForumNewTopicsAndNewestTorrents: setting whether show forum new topics and newest torrents in home page
296 * @showTopLevelTorrents: setting whether show top level torrents list
297 * @showAlbumsList: setting whether show albums list of home
298 * @backgroundImageFrom: setting home background image from torrent type
299 * @bodyBackgroundImage: background image url of home page body
300 * @buttonList: a function list area of home page
301 */
302 home: {
303 showVipBanner: false,
304 showForumNewTopicsAndNewestTorrents: false,
305 showTopLevelTorrents: false,
306 showAlbumsList: true,
307 backgroundImageFrom: 'movie',
308 bodyBackgroundImage: 'https://image.tmdb.org/t/p/w1280/cnKAGbX1rDkAquF2V1wVkptHDJO.jpg',
309 buttonList: [
310 {
311 icon: 'fa fa-bars',
312 state: 'forums.list',
313 title: 'HOME.BUTTON_LIST.FUN_FORUM_TITLE',
314 desc: 'HOME.BUTTON_LIST.FUN_FORUM_DESC'
315 },
316 {
317 icon: 'fab fa-vimeo-v',
318 state: 'vip.list',
319 title: 'HOME.BUTTON_LIST.FUN_VIP_TITLE',
320 desc: 'HOME.BUTTON_LIST.FUN_VIP_DESC'
321 },
322 {
323 icon: 'fa fa-question-circle',
324 state: 'about.manual.userRules',
325 title: 'HOME.BUTTON_LIST.FUN_HELP_TITLE',
326 desc: 'HOME.BUTTON_LIST.FUN_HELP_DESC'
327 },
328 {
329 icon: 'fa fa-headphones',
330 state: 'tickets.supports',
331 title: 'HOME.BUTTON_LIST.FUN_SUPPORT_TITLE',
332 desc: 'HOME.BUTTON_LIST.FUN_SUPPORT_DESC'
333 }
334 ]
335 },
336
337 /**
338 * @collections
339 *
340 * settings of movie collections
341 *
342 * @enable: setting enable status of movie collections function
343 */
344 collections: {
345 enable: true
346 },
347
348 /**
349 * @medals
350 *
351 * settings of medals wall
352 *
353 * @showWorkerUsersListToAll: setting normal user whether can list workers type medal owned users
354 * @type: medals type
355 * @cats: medal cats, please add translate string MEDALS_CATS_@cats
356 * @name: medal name
357 * @prefix: medal description translate string prefix, such as MEDALS_DESC_@prifix
358 * @faClass: medal logo background layer icon class with font-awesome
359 * @iconClass: medal logo top icon class with font-awesome
360 *
361 * @hasHeader: setting whether has a header string on medal, if true please add translate string MEDALS_HEADERSTRING_@prefix
362 * @hasFooter: setting whether has a footer string on medal, if true please add translate string MEDALS_FOOTERSTRING_@prefix
363 * @passHelp: setting for get this medal need who help
364 * @score: setting for self help medal by scores number
365 * @enable: enable status
366 */
367 medals: {
368 showWorkerUsersListToAll: false,
369 type: [
370 {
371 cats: 'workers', name: 'root', prefix: 'ROOT', faClass: 'fa fa-shield', iconClass: 'far fa-user-secret',
372 hasHeader: false, hasFooter: true, passHelp: 'admin', enable: true
373 },
374 {
375 cats: 'commemorative', name: 'siteBegin', prefix: 'SITE_BEGIN', faClass: 'fa fa-badge',
376 hasHeader: true, hasFooter: true, passHelp: 'self', score: 1000, enable: true
377 },
378 {
379 cats: 'events', name: 'closeBeta', prefix: 'CLOSE_BETA', faClass: 'fa fa-hexagon',
380 hasHeader: true, hasFooter: true, passHelp: 'admin', enable: true
381 }
382 ]
383 },
384
385 /**
386 * @sign
387 *
388 * user register settings
389 * NOTE: you can change these value at anytime if you understand it
390 *
391 * @openSignup: set whether open the signup, if true, the user can signup(register) by herself,
392 * if you create a private web site, and only accept invite to join, please set it to false.
393 * @displayNameMaxLength: settings max length of displayName
394 * @emailAllowable: allowable email address white list, only these address can be invited and sign up
395 * @signUpActiveTokenExpires: sign up account active expires time setting.
396 * @signUpActiveTokenExpires_str: string desc of @signUpActiveTokenExpires
397 * @allowSocialSignin: meanTorrent can accept social account to signin, like google, twitter, facebook etc.
398 * if you do not want them to login, please set it to false
399 *
400 * @showMenuHeaderForGuest: set whether show menu header for guest user(not sign in)
401 * @showFooterCountInfoForGuest: set whether show count info at home footer for guest user(not sign in)
402 * @showDemoSignMessage: if true, will show demo sign in message in sign in page, if your site is not demo site, please set it to false
403 *
404 * @idle: setting for account status of idle
405 * @accountIdleForTime: setting for how many time not login then change account status to idle
406 * @accountIdleForTime_str: string desc of @accountIdleForTime
407 * @activeIdleAccountBasicScore: user active idle account need basic score numbers
408 * @activeMoreScorePerDay: idle more than one day need extra score
409 * @activeMoreScorePerLevel: idle each level need extra score
410 * @notIdleSafeLevel: safe lavel, more than this level account not to be idle status
411 */
412 sign: {
413 openSignup: false,
414 displayNameMaxLength: 16,
415 emailAllowable: ['gmail.com', 'qq.com'],
416 signUpActiveTokenExpires: 60 * 60 * 1000 * 24,
417 signUpActiveTokenExpires_str: '24h',
418 allowSocialSignin: false,
419
420 showMenuHeaderForGuest: true,
421 showFooterCountInfoForGuest: true,
422 showDemoSignMessage: false,
423
424 idle: {
425 accountIdleForTime: 60 * 60 * 1000 * 24 * 30, //30 days
426 accountIdleForTime_str: '30d',
427 activeIdleAccountBasicScore: 50000,
428 activeMoreScorePerDay: 100,
429 activeMoreScorePerLevel: 1000,
430 notIdleSafeLevel: 30
431 }
432 },
433
434 /**
435 * @password
436 *
437 * password setting
438 *
439 * @resetTokenExpires: reset password token expires time, default 1 hour
440 * @resetTokenExpires_str: string desc of @resetTokenExpires
441 * @resetTimeInterval: reset password time interval, default 24 hours, means only can do once in 24 hours.
442 * @resetTimeInterval_str: string desc of @resetTimeInterval
443 */
444 password: {
445 resetTokenExpires: 60 * 60 * 1000 * 1,
446 resetTokenExpires_str: '1h',
447 resetTimeInterval: 60 * 60 * 1000 * 24,
448 resetTimeInterval_str: '24h'
449 },
450
451 /**
452 * @invite
453 *
454 * invite settings when sign.openSignup is false
455 * NOTE: you can change these value at anytime if you understand it
456 *
457 * @openInvite: if true, then any user can invite friends to join us, if false, only admin/oper can send invite mail
458 * @scoreExchange: if any user can send invite mail, the user must used score number to exchange an invite send qualifications, if the user has no
459 * enough score, then can not send invite mail too.
460 * @expires: if user exchange an invite send qualifications, then must send it out within the expiration time
461 * if user received an invite mail, must signin(register) within the expiration time
462 * if exceed the expiration time, the invite send qualifications will invalid and user also can not signin(register).
463 * @expires_str: string desc of @expires
464 * @banUserInviter: settings whether ban the user`s inviter when a user banned
465 * @banUserInviterVip: settings whether ban the user`s inviter if the inviter is a vip user
466 *
467 * @official: settings of official invitations
468 * @presentDays: settings of present official available days list
469 */
470 invite: {
471 openInvite: true,
472 scoreExchange: 10000,
473 expires: 60 * 60 * 1000 * 24,
474 expires_str: '24h',
475 banUserInviter: true,
476 banUserInviterVip: true,
477 official: {
478 presentDays: [1, 7, 30, 90, 180]
479 }
480 },
481
482 /**
483 * @requests
484 *
485 * requests settings
486 *
487 * @scoreForAddRequest: score numbers for add one request, system deduct automatic, this score is not rewards for final accepted user
488 * @rewardsFormDefaultValue: setting default rewards value of request post form input control
489 * @requestExpires: request expires time setting, default 7 days
490 * @requestExpires_str: string desc of @requestExpires
491 */
492 requests: {
493 scoreForAddRequest: 100,
494 rewardsFormDefaultValue: 1000,
495 requestExpires: 60 * 60 * 1000 * 24 * 7,
496 requestExpires_str: '7d'
497 },
498
499 /**
500 * @score
501 *
502 * score system settings
503 *
504 * @levelStep: value of each level step, default 500
505 * @scoreLogDays: setting of days to write score detail log to db, because the data is too more too big, do not to set a big value
506 * @action: score change action list
507 * @name: action name
508 * @value: action score value
509 * @enable: action enable status, if false, system will not change user`s score at this action
510 * NOTE: ENABLE VALUE OF DEFAULTACTION MUST BE TRUE
511 */
512 score: {
513 levelStep: 1000,
514 scoreLogDays: 10,
515 action: {
516 defaultAction: {name: 'defaultAction', content: 'DEFAULT_ACTION', value: 0, enable: true},
517 adminModify: {name: 'adminModify', content: 'ADMIN_MODIFY', value: 0, enable: true},
518
519 uploadTorrent: {name: 'uploadTorrent', content: 'UPLOAD_TORRENT', value: 20, enable: true},
520 uploadTorrentBeDeleted: {name: 'uploadTorrentBeDeleted', content: 'UPLOAD_TORRENT_BE_DELETED', value: -20, enable: true},
521 uploadTorrentBeRecommend: {name: 'uploadTorrentBeRecommend', content: 'UPLOAD_TORRENT_BE_RECOMMEND', value: 5, enable: true},
522 uploadSubtitle: {name: 'uploadSubtitle', content: 'UPLOAD_SUBTITLE', value: 10, enable: true},
523 uploadSubtitleBeDeleted: {name: 'uploadSubtitleBeDeleted', content: 'UPLOAD_SUBTITLE_BE_DELETED', value: -10, enable: true},
524
525 thumbsUpScoreOfTorrentFrom: {name: 'thumbsUpScoreOfTorrentFrom', content: 'THUMBS_UP_SCORE_OF_TORRENT_FROM', value: -5, enable: true},
526 thumbsUpScoreOfTorrentTo: {name: 'thumbsUpScoreOfTorrentTo', content: 'THUMBS_UP_SCORE_OF_TORRENT_TO', value: 5, enable: true},
527 thumbsUpScoreOfTopicFrom: {name: 'thumbsUpScoreOfTopicFrom', content: 'THUMBS_UP_SCORE_OF_TOPIC_FROM', value: -5, enable: true},
528 thumbsUpScoreOfTopicTo: {name: 'thumbsUpScoreOfTopicTo', content: 'THUMBS_UP_SCORE_OF_TOPIC_TO', value: 5, enable: true},
529
530 requestPost: {name: 'requestPost', content: 'REQUEST_POST', value: 0, enable: true}, //value used requests.scoreForAddRequest
531 requestAcceptFrom: {name: 'requestAcceptFrom', content: 'REQUEST_ACCEPT_FROM', value: 0, enable: true}, //value form user setting
532 requestAcceptTo: {name: 'requestAcceptTo', content: 'REQUEST_ACCEPT_TO', value: 0, enable: true}, //value form user setting
533
534 scoreExchangeInvitation: {name: 'scoreExchangeInvitation', content: 'SCORE_EXCHANGE_INVITATION', value: 0, enable: true}, //value used invite.scoreExchange
535 scoreToRemoveWarning: {name: 'scoreToRemoveWarning', content: 'SCORETO_REMOVE_WARNING', value: 0, enable: true}, //value used hitAndRun.scoreToRemoveWarning
536 scoreToRequestMedal: {name: 'scoreToRequestMedal', content: 'SCORETO_REQUEST_MEDAL', value: 0, enable: true}, //value used hitAndRun.scoreToRemoveWarning
537 activeIdleAccount: {name: 'activeIdleAccount', content: 'ACTIVE_IDLE_ACCOUNT', value: 0, enable: true}, //value used sign.idle.activeIdleAccountBasicScore
538
539 dailyCheckIn: {
540 enable: true,
541 name: 'dailyCheckIn',
542 content: 'DAILY_CHECK_IN',
543 dailyBasicScore: 10,
544 dailyStepScore: 1,
545 dailyMaxScore: 100
546 },
547
548 seedUpDownload: {
549 name: 'seedUpDownload',
550 content: 'SEED_UP_DOWNLOAD',
551 additionSize: 1024 * 1024 * 1024 * 10, //10G
552 additionSize_str: '10G',
553 perlSize: 1024 * 1024 * 1024 * 5, //5G
554 perlSize_str: '5G',
555
556 uploadValue: 1,
557 uploadEnable: true,
558 downloadValue: 0.5,
559 downloadEnable: true,
560 vipRatio: 1.5,
561 uploaderRatio: 2,
562
563 enable: true
564 },
565
566 seedTimed: {
567 name: 'seedTimed',
568 content: 'SEED_TIMED',
569 additionTime: 60 * 60 * 1000,
570 additionTime_str: '1h',
571 timedValue: 1,
572 vipRatio: 1.5,
573
574 enable: true
575 },
576
577 seedSeederAndLife: {
578 name: 'seedSeederAndLife',
579 content: 'SEED_SEEDER_AND_LIFE',
580 seederBasicRatio: 1,
581 seederCoefficient: 0.1,
582 seederCount: 10,
583 lifeBasicRatio: 1,
584 lifeCoefficientOfDay: 0.001,
585 lifeMaxRatio: 2,
586
587 enable: true
588 }
589 }
590 },
591
592 /**
593 * @messages
594 *
595 * site message settings
596 *
597 * @type: messages type
598 * @name: name of messages type, used in $translate
599 * @value: messages type value list
600 * @name: type name
601 * @value: type value
602 * @checkUnreadInterval: set check unread message interval, default 2 minutes
603 * @checkUnreadInterval_str: string desc of @checkUnreadInterval
604 * @serverMessageExpires: setting server message expire time, old message will be delete automatic
605 * @serverMessageExpires_str: setting desc of @serverMessageExpires
606 *
607 * NOTE: the first value 'user' cannot be deleted
608 */
609 messages: {
610 type: {
611 name: 'TYPE',
612 value: [
613 {name: 'USER', value: 'user', role: 'user'},
614 {name: 'SERVER', value: 'server', role: 'server'},
615 {name: 'SYSTEM', value: 'system', role: 'admin'},
616 {name: 'ADVERT', value: 'advert', role: 'admin'}
617 ]
618 },
619 checkUnreadInterval: 60 * 1000 * 2,
620 checkUnreadInterval_str: '2m',
621 serverMessageExpires: 60 * 60 * 1000 * 24 * 10,
622 serverMessageExpires_str: '10d'
623 },
624
625 /**
626 * @favorites
627 *
628 * settings of my favorites
629 *
630 * @name: favorites name string of $translate
631 */
632 favorites: {
633 name: 'FAVORITES.FAVORITES_NAME'
634 },
635
636 /**
637 * @inputLength
638 *
639 * input string length limit settings
640 *
641 * @uploadTorrentTitleLength: torrent title length on upload page
642 * @uploadTorrentSubTitleLength: torrent sub title length on upload page
643 *
644 * @userSignatureLength: user signature of forum string length limit
645 * @chatMessageMaxLength: chat room send message string length limit
646 *
647 * @messageTitleLength: user message send title length limit
648 * @messageBoxContentLength: user message send content length limit
649 * @messageBoxReplyLength: user message send reply content length limit
650 * @ticketContentLength: ticket content length limit
651 *
652 * @torrentCommentLength: torrent comment send content length limit
653 *
654 * @forumTopicTitleLength: forum topic title length limit
655 * @forumTopicContentLength: forum topic content length limit
656 * @forumReplyContentLength: forum reply content length limit
657 * @makerGroupDescLength: resources group desc content length limit
658 *
659 * @collectionsOverviewLength: movie collections overview content length limit
660 * @albumsOverviewLength: resource albums overview content length limit
661 *
662 * @requestDescLength: request description content length limit
663 * @requestCommentLength: request comment content length limit
664 */
665 inputLength: {
666 uploadTorrentTitleLength: 128,
667 uploadTorrentSubTitleLength: 128,
668
669 userSignatureLength: 512,
670 chatMessageMaxLength: 512,
671
672 messageTitleLength: 128,
673 messageBoxContentLength: 1024,
674 messageBoxReplyLength: 512,
675 ticketContentLength: 2048,
676
677 torrentCommentLength: 512,
678
679 forumTopicTitleLength: 128,
680 forumTopicContentLength: 4096,
681 forumReplyContentLength: 2048,
682
683 makerGroupDescLength: 2048,
684 collectionsOverviewLength: 2048,
685 albumsOverviewLength: 2048,
686
687 requestDescLength: 1024,
688 requestCommentLength: 512
689 },
690
691 /**
692 * @serverNotice
693 *
694 * server auto notice settings
695 *
696 * @action: notice actions
697 * @title: notice title in translate string of SERVER_MESSAGE
698 * @content: notice content in translate string of SERVER_MESSAGE
699 * @enable: enable switch
700 */
701 serverNotice: {
702 action: {
703 makerCreated: {title: 'TITLE_MAKER_CREATED', content: 'CONTENT_MAKER_CREATED', enable: true},
704 makerDeleted: {title: 'TITLE_MAKER_DELETED', content: 'CONTENT_MAKER_DELETED', enable: true},
705 makerUploadAccessChanged: {title: 'TITLE_MAKER_UPLOAD_ACCESS_CHANGED', content: 'CONTENT_MAKER_UPLOAD_ACCESS_CHANGED', enable: true},
706 makerAddMember: {title: 'TITLE_MAKER_ADD_MEMBER', content: 'CONTENT_MAKER_ADD_MEMBER', enable: true},
707 makerRemoveMember: {title: 'TITLE_MAKER_REMOVE_MEMBER', content: 'CONTENT_MAKER_REMOVE_MEMBER', enable: true},
708
709 userVipStatusChanged: {title: 'TITLE_USER_VIP_CHANGED_ADD', content: 'CONTENT_USER_VIP_CHANGED_ADD', enable: true},
710 userRoleChanged: {title: 'TITLE_USER_ROLE_CHANGED', content: 'CONTENT_USER_ROLE_CHANGED', enable: true},
711 userUploadAccessChanged: {title: 'TITLE_USER_UPLOAD_ACCESS_CHANGED', content: 'CONTENT_USER_UPLOAD_ACCESS_CHANGED', enable: true},
712
713 hnrWarningAddByAnnounce: {title: 'TITLE_HNR_WARNING_ADD', content: 'CONTENT_HNR_WARNING_ADD', enable: true},
714 hnrWarningRemoveByAnnounce: {title: 'TITLE_HNR_WARNING_REMOVE', content: 'CONTENT_HNR_WARNING_REMOVE', enable: true},
715
716 forumTopicNewReply: {title: 'TITLE_FORUM_NEW_TOPIC_REPLY', content: 'CONTENT_FORUM_NEW_TOPIC_REPLY', enable: true},
717 forumTopicThumbsUp: {title: 'TITLE_FORUM_TOPIC_THUMBS_UP', content: 'CONTENT_FORUM_TOPIC_THUMBS_UP', enable: true},
718 forumReplyThumbsUp: {title: 'TITLE_FORUM_REPLY_THUMBS_UP', content: 'CONTENT_FORUM_REPLY_THUMBS_UP', enable: true},
719 forumTopicDeleted: {title: 'TITLE_FORUM_TOPIC_DELETED', content: 'CONTENT_FORUM_TOPIC_DELETED', enable: true},
720 forumReplyDeleted: {title: 'TITLE_FORUM_REPLY_DELETED', content: 'CONTENT_FORUM_REPLY_DELETED', enable: true},
721 forumBecomeModerator: {title: 'TITLE_FORUM_BECOME_MODERATOR', content: 'CONTENT_FORUM_BECOME_MODERATOR', enable: true},
722
723 torrentNewComment: {title: 'TITLE_TORRENT_NEW_COMMENT', content: 'CONTENT_TORRENT_NEW_COMMENT', enable: true},
724 torrentCommentDeleted: {title: 'TITLE_TORRENT_COMMENT_DELETED', content: 'CONTENT_TORRENT_COMMENT_DELETED', enable: true},
725 torrentThumbsUp: {title: 'TITLE_TORRENT_THUMBS_UP', content: 'CONTENT_TORRENT_THUMBS_UP', enable: true},
726 torrentReviewed: {title: 'TITLE_TORRENT_REVIEWED', content: 'CONTENT_TORRENT_REVIEWED', enable: true},
727 torrentVipChanged: {title: 'TITLE_TORRENT_VIP_CHANGED', content: 'CONTENT_TORRENT_VIP_CHANGED', enable: true},
728 torrentTopChanged: {title: 'TITLE_TORRENT_TOP_CHANGED', content: 'CONTENT_TORRENT_TOP_CHANGED', enable: true},
729 torrentUniqueChanged: {title: 'TITLE_TORRENT_UNIQUE_CHANGED', content: 'CONTENT_TORRENT_UNIQUE_CHANGED', enable: true},
730 torrentHnRChanged: {title: 'TITLE_TORRENT_HNR_CHANGED', content: 'CONTENT_TORRENT_HNR_CHANGED', enable: true},
731 torrentSaleChanged: {title: 'TITLE_TORRENT_SALE_CHANGED', content: 'CONTENT_TORRENT_SALE_CHANGED', enable: true},
732 torrentDeleted: {title: 'TITLE_TORRENT_DELETED', content: 'CONTENT_TORRENT_DELETED', enable: true},
733 torrentSubtitleNew: {title: 'TITLE_TORRENT_SUBTITLE_NEW', content: 'CONTENT_TORRENT_SUBTITLE_NEW', enable: true},
734 torrentSubtitleDeleted: {title: 'TITLE_TORRENT_SUBTITLE_DELETED', content: 'CONTENT_TORRENT_SUBTITLE_DELETED', enable: true},
735
736 requestTorrentUpload: {title: 'TITLE_REQUEST_TORRENT_UPLOAD', content: 'CONTENT_REQUEST_TORRENT_UPLOAD', enable: true},
737 requestTorrentRespond: {title: 'TITLE_REQUEST_TORRENT_RESPOND', content: 'CONTENT_REQUEST_TORRENT_RESPOND', enable: true},
738 requestNewComment: {title: 'TITLE_REQUEST_NEW_COMMENT', content: 'CONTENT_REQUEST_NEW_COMMENT', enable: true},
739 requestCommentDeleted: {title: 'TITLE_REQUEST_COMMENT_DELETED', content: 'CONTENT_REQUEST_COMMENT_DELETED', enable: true}
740 }
741 },
742
743 /**
744 * @trace
745 *
746 * system trace logs settings
747 *
748 * @traceLogDays: setting trace log days, because data to more, do not to set a big value
749 * @action: trace action list
750 * @name: action name
751 * @enable: action enable status, if false, system will not to trace log this action
752 *
753 */
754 trace: {
755 traceLogDays: 10,
756 action: {
757 adminUpdateUserRole: {name: 'adminUpdateUserRole', enable: true},
758 adminUpdateUserStatus: {name: 'adminUpdateUserStatus', enable: true},
759 adminUpdateUserScore: {name: 'adminUpdateUserScore', enable: true},
760 adminUpdateUserUploaded: {name: 'adminUpdateUserUploaded', enable: true},
761 adminUpdateUserDownloaded: {name: 'adminUpdateUserDownloaded', enable: true},
762 adminUpdateUserVIPData: {name: 'adminUpdateUserVIPData', enable: true},
763 adminBanUserInviter: {name: 'adminBanUserInviter', enable: true},
764 adminPresentUserInvitations: {name: 'adminPresentUserInvitations', enable: true},
765 adminRemoveUserHnrWarning: {name: 'adminRemoveUserHnrWarning', enable: true},
766 adminCreateUserMakerGroup: {name: 'adminCreateUserMakerGroup', enable: true},
767 adminAddUserMedal: {name: 'adminAddUserMedal', enable: true},
768 adminRemoveUserMedal: {name: 'adminRemoveUserMedal', enable: true},
769
770 adminUserDelete: {name: 'adminUserDelete', enable: true},
771 adminUserEdit: {name: 'adminUserEdit', enable: true},
772 adminMakerEdit: {name: 'adminMakerEdit', enable: true},
773 adminBanAllExaminationUnfinishedUsers: {name: 'adminBanAllExaminationUnfinishedUsers', enable: true},
774
775 userPasswordReset: {name: 'userPasswordReset', enable: true},
776 userSignUp: {name: 'userSignUp', enable: true},
777 userActiveAccount: {name: 'userActiveAccount', enable: true},
778 userUnIdle: {name: 'userUnIdle', enable: true},
779
780 adminTorrentDelete: {name: 'adminTorrentDelete', enable: true},
781 adminTorrentSetSaleType: {name: 'adminTorrentSetSaleType', enable: true},
782 adminTorrentSetRecommendLevel: {name: 'adminTorrentSetRecommendLevel', enable: true},
783 adminCollectionSetRecommendLevel: {name: 'adminCollectionSetRecommendLevel', enable: true},
784 adminAlbumSetRecommendLevel: {name: 'adminAlbumSetRecommendLevel', enable: true},
785 adminTorrentSetReviewedStatus: {name: 'adminTorrentSetReviewedStatus', enable: true},
786 adminCreateCollection: {name: 'adminCreateCollection', enable: true},
787 adminCreateAlbum: {name: 'adminCreateAlbum', enable: true},
788 adminDeleteBackupFiles: {name: 'adminDeleteBackupFiles', enable: true},
789
790 userInvitationExchange: {name: 'userInvitationExchange', enable: true},
791 userRemoveHnrWarning: {name: 'userRemoveHnrWarning', enable: true},
792 userSendInvitation: {name: 'userSendInvitation', enable: true},
793 adminSendOfficialInvitation: {name: 'adminSendOfficialInvitation', enable: true},
794
795 userAnnounceFinished: {name: 'userAnnounceFinished', enable: true},
796
797 forumDeleteTopic: {name: 'forumDeleteTopic', enable: true},
798 forumDeleteReply: {name: 'forumDeleteReply', enable: true}
799 }
800 },
801
802 /**
803 * @history
804 *
805 * settings of admin/oper operate history on user account
806 *
807 * @action: history action item
808 * @name: action name
809 * @content: action info of translate string, write into db, show in account detail manage page
810 * @enable: enabled status
811 */
812 history: {
813 action: {
814 adminUpdateUserRole: {name: 'adminUpdateUserRole', content: 'ADMIN_UPDATE_USER_ROLE', enable: true},
815 adminUpdateUserStatus: {name: 'adminUpdateUserStatus', content: 'ADMIN_UPDATE_USER_STATUS', enable: true},
816 adminUpdateUserScore: {name: 'adminUpdateUserScore', content: 'ADMIN_UPDATE_USER_SCORE', enable: true},
817 adminUpdateUserUploaded: {name: 'adminUpdateUserUploaded', content: 'ADMIN_UPDATE_USER_UPLOADED', enable: true},
818 adminUpdateUserDownloaded: {name: 'adminUpdateUserDownloaded', content: 'ADMIN_UPDATE_USER_DOWNLOADED', enable: true},
819 adminUpdateUserVIPData: {name: 'adminUpdateUserVIPData', content: 'ADMIN_UPDATE_USER_VIP_DATA', enable: true},
820 adminPresentUserInvitations: {name: 'adminPresentUserInvitations', content: 'ADMIN_PRESENT_USER_INVITATIONS', enable: true},
821 adminRemoveUserHnrWarning: {name: 'adminRemoveUserHnrWarning', content: 'ADMIN_REMOVE_USER_HNR_WARNING', enable: true},
822 adminCreateUserMakerGroup: {name: 'adminCreateUserMakerGroup', content: 'ADMIN_CREATE_USER_MAKER_GROUP', enable: true},
823 adminAddUserMedal: {name: 'adminAddUserMedal', content: 'ADMIN_ADD_USER_MEDAL', enable: true},
824 adminRemoveUserMedal: {name: 'adminRemoveUserMedal', content: 'ADMIN_REMOVE_USER_MEDAL', enable: true},
825 adminBanUserInviter: {name: 'adminBanUserInviter', content: 'ADMIN_BAN_USER_INVITER', enable: true}
826 }
827 },
828
829 /**
830 * @torrentType
831 *
832 * torrent type settings
833 * if you need more torrent type, please add at here and config it, the system will add new type everywhere automatic
834 * NOTE: don`t change these value if you can not understand it
835 *
836 * @name: TYPE, do not change it
837 * @value: configure settings value of torrent type
838 *
839 * @enable: enable this type
840 * @name: name of type, used by $translate at TORRENT_TYPE_LABEL, will show translate result as torrent tag in torrent list
841 * @value: value of type, torrent type value in model, will write this value into mongodb and query torrents by this value
842 * @title: title of type, used by $translate at MENU_TORRENTS_SUB, will show translate result in header submenu item
843 * @role: role of type, limit none access users join
844 * @faIcon: fontawesome icon front of menu item
845 * @faClass: fontawesome icon class
846 * @divider: divider status of submenu item
847 * @position: position of submenu item(ordered index)
848 * @state: angular state of torrent type, this state value used in module route config
849 * @url: window location url of type
850 * @pageTitle: the page title string, used by translate at PAGETITLE
851 * @uploadTemplateID: view templateID in upload torrent page, when selected type is changed, then include the template by this id,
852 * all the template html is in file: modules/torrents/client/views/uploads-torrents.client.view.html
853 * @showSubtitleTabInDetailPage: setting whether show subtitle tab in torrent detail page
854 * @showTopListInHome: setting whether show the TOP list in site home page, if false, don`t show
855 * the 'other' type torrent always not show in home page
856 *
857 * if you add a config json item, please add translate string:
858 * MENU_TORRENTS_SUB
859 * TORRENT_TYPE_LABEL
860 * PAGETITLE.*
861 */
862 torrentType: {
863 name: 'TYPE',
864 value: [
865 {
866 enable: true,
867 name: 'MOVIE',
868 value: 'movie',
869 title: 'MENU_TORRENTS_SUB.MOVIE',
870 role: 'user',
871 faIcon: 'fa-film',
872 faClass: 'text-mt',
873 divider: false,
874 position: 1,
875 state: 'torrents.movie',
876 url: '/movie',
877 pageTitle: 'MOVIE_LIST',
878 uploadTemplateID: 'movie',
879 showSubtitleTabInDetailPage: true,
880 showScreenshotsTabInDetailPage: true,
881 showTopListInHome: true
882 },
883 {
884 enable: true,
885 name: 'TVSERIAL',
886 value: 'tvserial',
887 title: 'MENU_TORRENTS_SUB.TVSERIAL',
888 role: 'user',
889 faIcon: 'fa-tv',
890 faClass: 'text-mt',
891 divider: false,
892 position: 2,
893 state: 'torrents.tvserial',
894 url: '/tv',
895 pageTitle: 'TV_LIST',
896 uploadTemplateID: 'tvserial',
897 showSubtitleTabInDetailPage: true,
898 showScreenshotsTabInDetailPage: true,
899 showTopListInHome: true
900 },
901 {
902 enable: true,
903 name: 'DOCUMENTARY',
904 value: 'documentary',
905 title: 'MENU_TORRENTS_SUB.DOCUMENTARY',
906 role: 'user',
907 faIcon: 'fa-globe',
908 faClass: 'text-mt',
909 divider: false,
910 position: 3,
911 state: 'torrents.documentary',
912 url: '/documentary',
913 pageTitle: 'DOCUMENTARY_LIST',
914 uploadTemplateID: 'default',
915 showSubtitleTabInDetailPage: true,
916 showScreenshotsTabInDetailPage: false,
917 showTopListInHome: true
918 },
919 {
920 enable: true,
921 name: 'MUSIC',
922 value: 'music',
923 title: 'MENU_TORRENTS_SUB.MUSIC',
924 role: 'user',
925 faIcon: 'fa-music',
926 faClass: 'text-mt',
927 divider: true,
928 position: 4,
929 state: 'torrents.music',
930 url: '/music',
931 pageTitle: 'MUSIC_LIST',
932 uploadTemplateID: 'music',
933 showSubtitleTabInDetailPage: false,
934 showScreenshotsTabInDetailPage: false,
935 showTopListInHome: true
936 },
937 {
938 enable: true,
939 name: 'SPORTS',
940 value: 'sports',
941 title: 'MENU_TORRENTS_SUB.SPORTS',
942 role: 'user',
943 faIcon: 'fa-futbol',
944 faClass: 'text-mt',
945 divider: false,
946 position: 5,
947 state: 'torrents.sports',
948 url: '/sports',
949 pageTitle: 'SPORTS_LIST',
950 uploadTemplateID: 'default',
951 showSubtitleTabInDetailPage: false,
952 showScreenshotsTabInDetailPage: false,
953 showTopListInHome: false
954 },
955 {
956 enable: true,
957 name: 'VARIETY',
958 value: 'variety',
959 title: 'MENU_TORRENTS_SUB.VARIETY',
960 role: 'user',
961 faIcon: 'fa-camera',
962 faClass: 'text-mt',
963 divider: false,
964 position: 6,
965 state: 'torrents.variety',
966 url: '/variety',
967 pageTitle: 'VARIETY_LIST',
968 uploadTemplateID: 'default',
969 showSubtitleTabInDetailPage: false,
970 showScreenshotsTabInDetailPage: false,
971 showTopListInHome: false
972 },
973 {
974 enable: true,
975 name: 'PICTURE',
976 value: 'picture',
977 title: 'MENU_TORRENTS_SUB.PICTURE',
978 role: 'user',
979 faIcon: 'fa-images',
980 faClass: 'text-mt',
981 divider: false,
982 position: 7,
983 state: 'torrents.picture',
984 url: '/picture',
985 pageTitle: 'PICTURE_LIST',
986 uploadTemplateID: 'default',
987 showSubtitleTabInDetailPage: false,
988 showScreenshotsTabInDetailPage: false,
989 showTopListInHome: false
990 },
991 {
992 enable: true,
993 name: 'GAME',
994 value: 'game',
995 title: 'MENU_TORRENTS_SUB.GAME',
996 role: 'user',
997 faIcon: 'fa-gamepad',
998 faClass: 'text-mt',
999 divider: true,
1000 position: 8,
1001 state: 'torrents.game',
1002 url: '/game',
1003 pageTitle: 'GAME_LIST',
1004 uploadTemplateID: 'default',
1005 showSubtitleTabInDetailPage: false,
1006 showScreenshotsTabInDetailPage: false,
1007 showTopListInHome: false
1008 },
1009 {
1010 enable: true,
1011 name: 'SOFTWARE',
1012 value: 'software',
1013 title: 'MENU_TORRENTS_SUB.SOFTWARE',
1014 role: 'user',
1015 faIcon: 'fa-hdd',
1016 faClass: 'text-mt',
1017 divider: false,
1018 position: 9,
1019 state: 'torrents.software',
1020 url: '/software',
1021 pageTitle: 'SOFTWARE_LIST',
1022 uploadTemplateID: 'default',
1023 showSubtitleTabInDetailPage: false,
1024 showScreenshotsTabInDetailPage: false,
1025 showTopListInHome: false
1026 },
1027 {
1028 enable: true,
1029 name: 'EBOOK',
1030 value: 'ebook',
1031 title: 'MENU_TORRENTS_SUB.EBOOK',
1032 role: 'user',
1033 faIcon: 'fa-book',
1034 faClass: 'text-mt',
1035 divider: false,
1036 position: 10,
1037 state: 'torrents.ebook',
1038 url: '/ebook',
1039 pageTitle: 'EBOOK_LIST',
1040 uploadTemplateID: 'default',
1041 showSubtitleTabInDetailPage: false,
1042 showScreenshotsTabInDetailPage: false,
1043 showTopListInHome: false
1044 },
1045 {
1046 enable: true,
1047 name: 'OTHER',
1048 value: 'other',
1049 title: 'MENU_TORRENTS_SUB.OTHER',
1050 role: 'user',
1051 faIcon: null,
1052 faClass: null,
1053 divider: true,
1054 position: 11,
1055 state: 'torrents.other',
1056 url: '/other',
1057 pageTitle: 'OTHER_LIST',
1058 uploadTemplateID: 'default',
1059 showSubtitleTabInDetailPage: false,
1060 showScreenshotsTabInDetailPage: false,
1061 showTopListInHome: false
1062 },
1063 {
1064 enable: true,
1065 name: 'ADULT',
1066 value: 'adult',
1067 title: 'MENU_TORRENTS_SUB.ADULT',
1068 role: 'vip',
1069 faIcon: null,
1070 faClass: null,
1071 divider: true,
1072 position: 12,
1073 state: 'torrents.adult',
1074 url: '/adult',
1075 pageTitle: 'ADULT_LIST',
1076 uploadTemplateID: 'default',
1077 showSubtitleTabInDetailPage: false,
1078 showScreenshotsTabInDetailPage: false,
1079 showTopListInHome: false
1080 }
1081 ]
1082 },
1083
1084 /**
1085 * @torrentStatus
1086 *
1087 * the torrent status settings
1088 * NOTE: don`t change these value if you can not understand it
1089 *
1090 * @name: do not change it
1091 * @value: value of status
1092 * @name: name of status level, used by $translate at TORRENT_RECOMMEND_LEVEL_ITEM, will show translate result in torrent admin list
1093 * @value: value of status level, will write this value into mongodb and query(search) torrents by this value
1094 * @checkNewTorrentsInterval: set check new torrents interval, default 2 minutes
1095 * @checkNewTorrentsInterval_str: string desc of @checkNewTorrentsInterval
1096 */
1097 torrentStatus: {
1098 name: 'STATUS',
1099 value: [
1100 {name: 'NEW', value: 'new'},
1101 {name: 'REVIEWED', value: 'reviewed'},
1102 {name: 'DELETED', value: 'deleted'}
1103 ],
1104 checkNewTorrentsInterval: 60 * 1000 * 2,
1105 checkNewTorrentsInterval_str: '2m'
1106 },
1107
1108 /**
1109 * @torrentRecommendLevel
1110 *
1111 * the torrent recommend level settings
1112 * NOTE: don`t change these value if you can not understand it
1113 *
1114 * @name: do not change it
1115 * @value: value of recommend level
1116 *
1117 * @name: name of recommend level, used by $translate at TORRENT_RECOMMEND_LEVEL_ITEM, will show translate result as torrent tag in torrent list
1118 * @value: value of recommend level, will write this value into mongodb and query(search) torrents by this value
1119 */
1120 torrentRecommendLevel: {
1121 name: 'RECOMMENDLEVEL',
1122 value: [
1123 {name: 'LEVEL0', value: 'level0'},
1124 {name: 'LEVEL1', value: 'level1'},
1125 {name: 'LEVEL2', value: 'level2'},
1126 {name: 'LEVEL3', value: 'level3'}
1127 ]
1128 },
1129
1130 /**
1131 * @hitAndRun
1132 *
1133 * settings of Hit & Run system, system will auto update the warning status and number of user when client announce to tracker server
1134 * when admin/oper changed the torrent h&r prop to false, system will auto remove all warning and number of user
1135 * when admin/oper to delete a h&r torrent, system will auto remove all warning and number of user
1136 * NOTE: you can change these value at anytime if you understand it
1137 *
1138 * @enable: setting whether enable the H&R function
1139 * @condition: the condition of HnR warning, user must meet one of them before you receive the warning
1140 * @seedTime: torrent seed time, unit of day, default to 7 days
1141 * @seedTime_str: string desc of @seedTime
1142 * @ratio: seed ratio, default to 1.5
1143 * @forbiddenDownloadMinWarningNumber: when user get this number of warning, then can not to download any torrents, but can continue download the warning status torrent
1144 * @scoreToRemoveWarning: if user has any warning, user can remove one warning by score number, if the user has not enough score, user still can remove these
1145 * warning by donate the VIP class.
1146 * @checkWaringInterval: set check warning number interval, default 2 minutes
1147 * @checkWaringInterval_str: string desc of @checkWaringInterval
1148 */
1149 hitAndRun: {
1150 enable: true,
1151 condition: {
1152 seedTime: 60 * 60 * 1000 * 24 * 7,
1153 seedTime_str: '7d',
1154 ratio: 1.5
1155 },
1156 forbiddenDownloadMinWarningNumber: 3,
1157 scoreToRemoveWarning: 10000,
1158 checkWaringInterval: 60 * 1000 * 2,
1159 checkWaringInterval_str: '2m'
1160 },
1161
1162 /**
1163 * @userStatus
1164 *
1165 * user account status setting
1166 * NOTE: don`t change these value if you can not understand it
1167
1168 * @name: name of status, used in $translate
1169 * @value: values of user status
1170 * @name: status name
1171 * @value: status value
1172 *
1173 * @normal: normal user
1174 * @banned: user is banned from server, can not sign in, can not download and announce
1175 * @idle: not sign in for long time, can resign in, but can not download and announce, need reactive for score numbers
1176 * @inactive: user can not sign in, need active from email verify link
1177 */
1178 userStatus: {
1179 name: 'STATUS',
1180 value: [
1181 {name: 'NORMAL', value: 'normal'},
1182 {name: 'BANNED', value: 'banned'},
1183 {name: 'IDLE', value: 'idle'},
1184 {name: 'INACTIVE', value: 'inactive'}
1185 ]
1186 },
1187
1188 /**
1189 * @userRoles
1190 *
1191 * user roles settings
1192 * NOTE: don`t change these value if you can not understand it
1193 *
1194 * user: normal user role
1195 * oper: operator user role
1196 * admin: admin user role, admin include oper
1197 */
1198 userRoles: ['user', 'oper', 'admin'],
1199
1200 /**
1201 * @state
1202 *
1203 * setting roles for state access
1204 *
1205 * @operList: roles for state: about.operlist
1206 */
1207 state: {
1208 operList: ['user', 'oper', 'admin']
1209 },
1210
1211 /**
1212 * @clientBlackList
1213 *
1214 * download client black list
1215 * all the list client can not announce or get any data
1216 *
1217 * @name: client software name
1218 */
1219 clientBlackList: [
1220 {name: 'Mozilla', type: 'browser', reason: 'CLIENT_BLOCK_REASON.NON_BT_CLIENT'},
1221 {name: 'AppleWebKit', type: 'browser', reason: 'CLIENT_BLOCK_REASON.NON_BT_CLIENT'},
1222 {name: 'Safari', type: 'browser', reason: 'CLIENT_BLOCK_REASON.NON_BT_CLIENT'},
1223 {name: 'Chrome', type: 'browser', reason: 'CLIENT_BLOCK_REASON.NON_BT_CLIENT'},
1224 {name: 'Lynx', type: 'browser', reason: 'CLIENT_BLOCK_REASON.NON_BT_CLIENT'},
1225 {name: 'Opera', type: 'browser', reason: 'CLIENT_BLOCK_REASON.NON_BT_CLIENT'},
1226 {name: 'curl', type: 'curl', reason: 'CLIENT_BLOCK_REASON.NON_BT_CLIENT'}
1227 ],
1228
1229 /**
1230 * @torrentSalesType
1231 *
1232 * torrent sale type setting
1233 *
1234 * @name: name of torrent sale type, used in $translate
1235 * @value: sale type value list
1236 * @name: sale item name
1237 * @desc: sale item desc
1238 * @expires: sales expires time setting, this time is calc by torrent size, like: each GBit size add expires time one hour,
1239 * if torrent size is 40G, then the sales expires time is set to 40 hours automatic
1240 */
1241 torrentSalesType: {
1242 name: 'SALESTYPE',
1243 value: [
1244 {name: 'U1/FREE', desc: 'Upload * 1, Download Free'},
1245 {name: 'U1/D.3', desc: 'Upload * 1, Download * 0.3'},
1246 {name: 'U1/D.5', desc: 'Upload * 1, Download * 0.5'},
1247 {name: 'U1/D.8', desc: 'Upload * 1, Download * 0.8'},
1248 {name: 'U1/D1', desc: 'Upload * 1, Download * 1'},
1249 {name: 'U2/FREE', desc: 'Upload * 2, Download Free'},
1250 {name: 'U2/D.3', desc: 'Upload * 2, Download * 0.3'},
1251 {name: 'U2/D.5', desc: 'Upload * 2, Download * 0.5'},
1252 {name: 'U2/D.8', desc: 'Upload * 2, Download * 0.8'},
1253 {name: 'U2/D1', desc: 'Upload * 2, Download * 1'},
1254 {name: 'U3/FREE', desc: 'Upload * 3, Download Free'},
1255 {name: 'U3/D.3', desc: 'Upload * 3, Download * 0.3'},
1256 {name: 'U3/D.5', desc: 'Upload * 3, Download * 0.5'},
1257 {name: 'U3/D.8', desc: 'Upload * 3, Download * 0.8'},
1258 {name: 'U3/D1', desc: 'Upload * 3, Download * 1'}
1259 ],
1260 expires: {
1261 size: 1024 * 1024 * 1024,
1262 size_str: '1G',
1263 time: 60 * 60 * 1000,
1264 time_str: '1h'
1265 }
1266 },
1267
1268 /**
1269 * @torrentGlobalSales
1270 *
1271 * Global torrent sales settings
1272 *
1273 * @global: global sale settings
1274 * @value: number value of @torrentSalesType, like 'U2/Free' etc, this value priority torrent @torrentSalesType
1275 * @startAt: sale start time
1276 * @expires: sale expires time
1277 * @expires_str: string desc of @expires
1278 * @noticeMsg: notice translate string show at top of home
1279 * @noticeShowAt: notice begin time to show
1280 * @timeFormats: time string format
1281 * @vip: vip sale settings
1282 * @value: upload and download ratio
1283 * @Ur: upload ratio, like 1.5 is upload scaling plus 50%
1284 * @Dr: download ratio
1285 * @uploader: sale settings for torrent uploader
1286 * @value: upload and download ratio
1287 * @Ur: upload ratio
1288 * @Dr: download ratio
1289 */
1290 torrentGlobalSales: {
1291 global: {
1292 value: 'U3/FREE',
1293 startAt: '2018-01-29 00:00:00',
1294 expires: 60 * 60 * 1000 * 24 * 3,
1295 expires_str: '3d',
1296 noticeMsg: 'SITE_NOTICE.GLOBAL_SALES_NOTICE',
1297 noticeShowAt: '2018-01-22 00:00:00',
1298 timeFormats: 'YYYY-MM-DD HH:mm:ss'
1299 },
1300 vip: {
1301 value: {Ur: 1.5, Dr: 0}
1302 },
1303 uploader: {
1304 value: {Ur: 2, Dr: 1}
1305 }
1306 },
1307
1308 /**
1309 * @examination
1310 *
1311 * examination system settings
1312 *
1313 * @incrementData: examination requirements data settings
1314 * @upload: increment uploaded data size
1315 * @upload_str: string desc of @upload
1316 * @download: increment downloaded data size
1317 * @download_str: string desc of @download
1318 * @score: increment score number
1319 * @timeSet: examination time settings
1320 * @startAt: examination start time
1321 * @endAt: examination end time
1322 * @noticeMsg: notice translate string show at top of home
1323 * @noticeShowAt: notice begin time to show
1324 * @timeFormats: time string format
1325 * @detailUrl: detail info of examination, maybe a forum link url
1326 * ------------------------------------------------------------------------------
1327 * !IMPORTANT NOTE:
1328 * IF YOU START A NEW EXAMINATION, PLEASE SETTING THESE CONFIGURE ITEMS,
1329 * AND INIT ALL USER ACCOUNT`S EXAMINATION INFO BEFORE THE EXAMINATION STARTING
1330 * ------------------------------------------------------------------------------
1331 */
1332 examination: {
1333 incrementData: {
1334 upload: 1024 * 1024 * 1024 * 500, //500G
1335 upload_str: '500G',
1336 download: 1024 * 1024 * 1024 * 300, //300G
1337 download_str: '300G',
1338 score: 20000
1339 },
1340 timeSet: {
1341 startAt: '2018-02-01 00:00:00',
1342 endAt: '2018-03-01 00:00:00',
1343 noticeMsg: 'SITE_NOTICE.EXAMINATION_NOTICE',
1344 noticeShowAt: '2018-01-28 00:00:00',
1345 timeFormats: 'YYYY-MM-DD HH:mm:ss'
1346 },
1347 detailUrl: '/forums/595c4491d5706705f67d93cf/59684780f928f42a9c79c613'
1348 },
1349
1350 /**
1351 * @chat
1352 *
1353 * chat settings
1354 * NOTE: you can change these value at anytime if you understand it
1355 *
1356 * @ban: banned user settings
1357 * @expires: banned expires time setting, in this time, user cannot connect chat server
1358 */
1359 chat: {
1360 ban: {
1361 expires: 60 * 60 * 1000 * 1,
1362 expires_str: '1h'
1363 }
1364 },
1365
1366 /**
1367 * @tmdbConfig
1368 *
1369 * movie info web www.themoviedb.com settings
1370 *
1371 * @key: access key fro TMDB, when u first install and runing this system, please register a key from TMDB and replace here
1372 * @tmdbHome: TMDB website home link url
1373 * @tmdbMovieLinkUrl: linked url, link to movie detail info page, system get movie detail info from here
1374 * @tmdbTvserialLinkUrl: linked url, link to tv serial detail info page, system get tv serial detail info from here
1375 *
1376 * @backdropImgBaseUrl: image link url
1377 * @backdropImgBaseUrl_300: image link url
1378 * @backdropImgBaseUrl_780: image link url
1379 * @backdropImgBaseUrl_1280: image link url
1380 *
1381 * @posterImgBaseUrl: image link url
1382 * @posterImgBaseUrl_92: image link url
1383 * @posterImgBaseUrl_154: image link url
1384 * @posterImgBaseUrl_185: image link url
1385 * @posterImgBaseUrl_342: image link url
1386 * @posterImgBaseUrl_500: image link url
1387 * @posterImgBaseUrl_780: image link url
1388 *
1389 * @castImgBaseUrl: image link url
1390 *
1391 * @resourcesLanguage: settings for language of dropdown resource info
1392 * @showMoreImagesOnTorrentDetailPage: setting whether to show more images from tmdb on torrent detail page
1393 */
1394 tmdbConfig: {
1395 key: 'this is access key from tmdb',
1396 tmdbHome: 'https://www.themoviedb.org',
1397 tmdbMovieLinkUrl: 'https://www.themoviedb.org/movie/',
1398 tmdbTvserialLinkUrl: 'https://www.themoviedb.org/tv/',
1399
1400 backdropImgBaseUrl: 'https://image.tmdb.org/t/p/original',
1401 backdropImgBaseUrl_300: 'https://image.tmdb.org/t/p/w300',
1402 backdropImgBaseUrl_780: 'https://image.tmdb.org/t/p/w780',
1403 backdropImgBaseUrl_1280: 'https://image.tmdb.org/t/p/w1280',
1404
1405 posterImgBaseUrl: 'https://image.tmdb.org/t/p/original',
1406 posterImgBaseUrl_92: 'https://image.tmdb.org/t/p/w92',
1407 posterImgBaseUrl_154: 'https://image.tmdb.org/t/p/w154',
1408 posterImgBaseUrl_185: 'https://image.tmdb.org/t/p/w185',
1409 posterImgBaseUrl_342: 'https://image.tmdb.org/t/p/w342',
1410 posterImgBaseUrl_500: 'https://image.tmdb.org/t/p/w500',
1411 posterImgBaseUrl_780: 'https://image.tmdb.org/t/p/w780',
1412
1413 castImgBaseUrl: 'https://image.tmdb.org/t/p/w132_and_h132_bestv2',
1414
1415 resourcesLanguage: 'zh',
1416 showMoreImagesOnTorrentDetailPage: true
1417 },
1418
1419 /**
1420 * @imdbConfig
1421 *
1422 * movie info web www.imdb.com settings
1423 *
1424 * @imdbLinkUrl: linked url, will nav to imdb website
1425 */
1426 imdbConfig: {
1427 imdbLinkUrl: 'https://www.imdb.com/title/'
1428 },
1429
1430 /**
1431 * @voteTitle
1432 *
1433 * vote title string settings
1434 *
1435 * @imdb: imdb vote label string
1436 * @mt: meanTorrent system vote label string
1437 */
1438 voteTitle: {
1439 imdb: 'IMDB',
1440 mt: 'MEAN'
1441 },
1442
1443 /**
1444 * @forumsConfig
1445 *
1446 * forums configure settings
1447 * here is only configure the forum category, if you want to add some sub discussion area, please into admin menu -> forums configure
1448 * NOTE: you can change these value at anytime if you understand it
1449 *
1450 * @category: forums category
1451 * @name: name of forum category, for a new item, please add a translate string at 'FORUMS->CATEGORY'
1452 * @value: value of forum category
1453 * @index: list order index of forum category
1454 * @roles: limit access for user type
1455 * @isVip: set whether is only for VIP user
1456 * @showThumbsUpUserList: if true, will show thumbs up users list at eof of topic content or reply content
1457 * @showUserSignature: if true, will show user signature info in forum
1458 *
1459 * @noticeForumId: if you create a forum for site global notice, here is the forumID, it will link to forum from more notice list of home page
1460 * @helpForumId: if you create a forum for user rules and helpers, here is the forumID, it will link to forum from more help list of home page
1461 */
1462 forumsConfig: {
1463 category: [
1464 {name: 'AFFAIRS', value: 'affairs', index: 0, isOper: false, isVip: false},
1465 {name: 'DISCUSS', value: 'discuss', index: 1, isOper: false, isVip: false},
1466 {name: 'BUSINESS', value: 'business', index: 2, isOper: false, isVip: false},
1467 {name: 'VIP', value: 'vip', index: 3, isOper: false, isVip: true},
1468 {name: 'ADMINISTRATION', value: 'Administration', index: 4, isOper: true, isVip: false}
1469 ],
1470 showThumbsUpUserList: true,
1471 showUserSignature: true,
1472
1473 noticeForumId: 'some id',
1474 helpForumId: 'some id'
1475 },
1476
1477 /**
1478 * @itemsPerPage
1479 *
1480 * items number in per list page settings
1481 * NOTE: you can change these value at anytime if you understand it
1482 *
1483 * @topicsPerPage: forum topic list page settings
1484 * @repliesPerPage: forum topic replies list page settings
1485 *
1486 * @topicsSearchPerPage: forum topic search list page settings
1487 * @torrentsPerPage: torrents list page settings
1488 * @torrentsCommentsPerPage: torrent comments list settings
1489 * @torrentsFavoritesPerPage: torrent of favorites list page settings
1490 * @makeGroupTorrentsPerPage: torrent of make group list page settings
1491 * @albumTorrentsPerPage: torrent of album list page settings
1492 *
1493 * @tracesPerPage: system traces log list page settings
1494 * @adminUserListPerPage: admin manage users list page settings
1495 * @collectionsListPerPage: movie collections list page settings
1496 * @backupFilesListPerPage: system backup files list page settings
1497 * @torrentPeersListPerPage: torrent detail seeder & leecher users list page settings
1498 * @officialInvitationsListPerPage: official invitations list page settings
1499 * @userInvitationsListPerPage: users invitations list page settings
1500 * @userDataLogsListPerPage: users data history logs list page settings
1501 * @medalUsersListPerPage: medal owned users list page settings
1502 *
1503 * @uploaderUserListPerPage: admin management uploader access list page settings
1504 * @messageBoxListPerPage: message box list page settings
1505 * @followListPerPage: users follow list page settings
1506 *
1507 * @requestListPerPage: request list page settings
1508 * @requestCommentsPerPage: request comments list settings
1509 *
1510 * @homeOrderTorrentListPerType: every type of torrent showed in home settings
1511 * @homeNewestTorrentListPerType: every type of torrent of newest showed in home settings
1512 * @homeHelpListLimit: help items number of home settings
1513 * @homeNoticeListLimit: notice items number of home settings
1514 * @homeNewTopicListLimit: new topic items number of home settings
1515 * @homeNewestTorrentsListLimit: newest torrents items number of home settings
1516 *
1517 * @examinationUserListPerPage: users item number of examination result page
1518 * @messageTicketsListPerPage: message tickets items number of support list page
1519 * @messageTicketRepliesPerPage: message ticket replies list page settings
1520 * @mailTicketsListPerPage: mail tickets items number of support list page
1521 * @mailTicketRepliesPerPage: mail ticket replies list page settings
1522 */
1523 itemsPerPage: {
1524 topicsPerPage: 25,
1525 repliesPerPage: 20,
1526
1527 topicsSearchPerPage: 20,
1528 torrentsPerPage: 20,
1529 torrentsCommentsPerPage: 20,
1530 torrentsFavoritesPerPage: 20,
1531 makeGroupTorrentsPerPage: 20,
1532 albumTorrentsPerPage: 20,
1533
1534 tracesPerPage: 30,
1535 adminUserListPerPage: 20,
1536 collectionsListPerPage: 9,
1537 backupFilesListPerPage: 20,
1538 torrentPeersListPerPage: 20,
1539 officialInvitationsListPerPage: 20,
1540 userInvitationsListPerPage: 10,
1541 userDataLogsListPerPage: 20,
1542 medalUsersListPerPage: 60,
1543
1544 uploaderUserListPerPage: 20,
1545 messageBoxListPerPage: 10,
1546 followListPerPage: 30,
1547
1548 requestListPerPage: 15,
1549 requestCommentsPerPage: 20,
1550
1551 homeOrderTorrentListPerType: 9, //do net change this
1552 homeNewestTorrentListPerType: 14, //do net change this
1553 homeHelpListLimit: 8,
1554 homeNoticeListLimit: 8,
1555 homeNewTopicListLimit: 8,
1556 homeNewestTorrentsListLimit: 8,
1557
1558 examinationUserListPerPage: 20,
1559 messageTicketsListPerPage: 15,
1560 messageTicketRepliesPerPage: 20,
1561 mailTicketsListPerPage: 15,
1562 mailTicketRepliesPerPage: 20
1563 },
1564
1565 /**
1566 * @shellCommand
1567 *
1568 * online shell command execute settings
1569 *
1570 * @cmd: command name
1571 * @eid: element id, will append command stdout message to it
1572 * @desc: command desc
1573 */
1574 shellCommand: [
1575 {command: 'git pull', eid: 'git-pull', desc: 'COMMAND.GIT_PULL'},
1576 {command: 'npm install', eid: 'npm-install', desc: 'COMMAND.NPM_INSTALL'},
1577 {command: 'bower install', eid: 'bower-install', desc: 'COMMAND.BOWER_INSTALL'},
1578 {command: 'gulp build', eid: 'gulp-build', desc: 'COMMAND.GULP_BUILD'},
1579 {command: './restart.sh', eid: 'restart', desc: 'COMMAND.RESTART'}
1580 ],
1581
1582 /**
1583 * @mediaInfo
1584 *
1585 * mediaInfo settings
1586 *
1587 * @flag: flag icon class, can find flag icon at '/public/lib/flag-icon-css/flags'
1588 */
1589 mediaInfo: {
1590 flag: {
1591 chs: {class: 'flag-icon-cn'},
1592 chinese: {class: 'flag-icon-cn'},
1593 cht: {class: 'flag-icon-tw'},
1594 korean: {class: 'flag-icon-kr'},
1595 eng: {class: 'flag-icon-gb'}
1596 }
1597 },
1598
1599 /**
1600 * @resourcesTags
1601 *
1602 * resources search tags settings, can configure more tags of torrentType at here
1603 *
1604 * @radio: single selection tags
1605 * @checkbox: multiple selection tags
1606 * @name: tag type name, used in $translate -> RESOURCESTAGS
1607 * @cats: value of @torrentType, torrents filter(search) will used by this value
1608 * @value: sub tags value list
1609 * @name: sub tag name
1610 * @icon: sub tag icon file path
1611 */
1612 resourcesTags: {
1613 radio: [
1614 {
1615 name: 'MUSIC_SUB_CAT',
1616 cats: ['music'],
1617 value: [
1618 {name: 'CD', icon: ''},
1619 {name: 'MTV', icon: ''}
1620 ]
1621 },
1622 {
1623 name: 'TYPE',
1624 cats: ['movie', 'tvserial', 'documentary', 'adult'],
1625 value: [
1626 {name: 'BLU_RAY', icon: ''},
1627 {name: 'REMUX', icon: ''},
1628 {name: 'ENCODE', icon: ''},
1629 {name: 'WEB', icon: ''},
1630 {name: 'HDTV', icon: ''}
1631 ]
1632 },
1633 {
1634 name: 'RESOLUTION',
1635 cats: ['movie', 'tvserial', 'documentary', 'music', 'sports', 'variety', 'adult'],
1636 value: [
1637 {name: 'S4K', icon: ''},
1638 {name: 'S1080P', icon: ''},
1639 {name: 'S1080I', icon: ''},
1640 {name: 'S720P', icon: ''}
1641 ]
1642 },
1643 {
1644 name: 'VIDEO',
1645 cats: ['movie', 'tvserial', 'documentary', 'music', 'sports', 'variety', 'adult'],
1646 value: [
1647 {name: 'H264', icon: ''},
1648 {name: 'H265', icon: ''},
1649 {name: 'X264', icon: ''},
1650 {name: 'X265', icon: ''}
1651 ]
1652 },
1653 {
1654 name: 'VISION',
1655 cats: ['movie', 'tvserial', 'documentary', 'music', 'sports', 'variety', 'adult'],
1656 value: [
1657 {name: 'DOLBY', icon: ''},
1658 {name: 'HDR10PLUS', icon: ''},
1659 {name: 'HDR10', icon: ''},
1660 {name: 'HDR', icon: ''},
1661 {name: 'SDR', icon: ''}
1662 ]
1663 },
1664 {
1665 name: 'AUDIO',
1666 cats: ['movie', 'tvserial', 'documentary', 'music', 'sports', 'variety', 'adult'],
1667 value: [
1668 {name: 'DTS_X', icon: ''},
1669 {name: 'ATMOS', icon: ''},
1670 {name: 'DTS_HD', icon: ''},
1671 {name: 'TRUE_HD', icon: ''},
1672 {name: 'DTS', icon: ''},
1673 {name: 'AC3', icon: ''},
1674 {name: 'AAC', icon: ''}
1675 ]
1676 },
1677 {
1678 name: 'AUDIOFORMATS',
1679 cats: ['music'],
1680 value: [
1681 {name: 'WAV', icon: ''},
1682 {name: 'FLAC', icon: ''},
1683 {name: 'APE', icon: ''}
1684 ]
1685 },
1686 {
1687 name: 'THREED',
1688 cats: ['movie', 'documentary', 'adult'],
1689 value: [
1690 {name: 'T3D', icon: ''}
1691 ]
1692 },
1693 {
1694 name: 'SPORTS_SUB_CAT',
1695 cats: ['sports'],
1696 value: [
1697 {name: 'FOOTBALL', icon: ''},
1698 {name: 'BASKETBALL', icon: ''},
1699 {name: 'RUGBY', icon: ''},
1700 {name: 'TENNIS', icon: ''},
1701 {name: 'BOXING', icon: ''},
1702 {name: 'SNOOKER', icon: ''},
1703 {name: 'F1', icon: ''}
1704 ]
1705 },
1706 {
1707 name: 'REGION',
1708 cats: ['movie', 'tvserial', 'documentary', 'music', 'sports', 'variety', 'adult'],
1709 value: [
1710 {name: 'EUR_USA', icon: ''},
1711 {name: 'CHINA', icon: ''},
1712 {name: 'JAPAN', icon: ''},
1713 {name: 'KOREA', icon: ''},
1714 {name: 'INDIA', icon: ''},
1715 {name: 'ARAB', icon: ''}
1716 ]
1717 },
1718 {
1719 name: 'PLATFORM',
1720 cats: ['software', 'game'],
1721 value: [
1722 {name: 'WINDOWS', icon: ''},
1723 {name: 'MACOS', icon: ''},
1724 {name: 'LINUX', icon: ''},
1725 {name: 'IOS', icon: ''},
1726 {name: 'ANDROID', icon: ''},
1727 {name: 'CAR', icon: ''}
1728 ]
1729 },
1730 {
1731 name: 'SOFT_SUB_CAT',
1732 cats: ['software'],
1733 value: [
1734 {name: 'OS', icon: ''},
1735 {name: 'OFFICE', icon: ''},
1736 {name: 'TOOLS', icon: ''},
1737 {name: 'MEDIA', icon: ''},
1738 {name: 'DEVELOPMENT_IDE', icon: ''},
1739 {name: 'MAP', icon: ''}
1740 ]
1741 },
1742 {
1743 name: 'PICTURE_SUB_CAT',
1744 cats: ['picture'],
1745 value: [
1746 {name: 'SCENERY', icon: ''},
1747 {name: 'FASHION', icon: ''},
1748 {name: 'SPORTS', icon: ''},
1749 {name: 'ART_PORTRAIT', icon: ''}
1750 ]
1751 },
1752 {
1753 name: 'EBOOK_FORMAT',
1754 cats: ['ebook'],
1755 value: [
1756 {name: 'PDF', icon: ''},
1757 {name: 'WDL', icon: ''},
1758 {name: 'ABM', icon: ''},
1759 {name: 'CEB', icon: ''},
1760 {name: 'PDG', icon: ''},
1761 {name: 'CHM', icon: ''},
1762 {name: 'TXT', icon: ''}
1763 ]
1764 },
1765 {
1766 name: 'EBOOK_SUB_CAT',
1767 cats: ['ebook'],
1768 value: [
1769 {name: 'PROGRAMMING', icon: ''},
1770 {name: 'COMPUTER', icon: ''},
1771 {name: 'MAGAZINE', icon: ''},
1772 {name: 'STORY', icon: ''},
1773 {name: 'BIOGRAPHY', icon: ''}
1774 ]
1775 }
1776 ],
1777 checkbox: [
1778 {
1779 name: 'MODIFY',
1780 cats: ['movie', 'tvserial', 'documentary', 'sports', 'variety', 'adult'],
1781 value: [
1782 {name: 'DIY', icon: ''},
1783 {name: 'GUOPEI', icon: ''},
1784 {name: 'ZHONGZI', icon: ''}
1785 ]
1786 },
1787 {
1788 name: 'RANKING',
1789 cats: ['movie', 'tvserial'],
1790 value: [
1791 {name: 'IMDB_TOP100', icon: ''},
1792 {name: 'IMDB_TOP250', icon: ''}
1793 ]
1794 }
1795 ]
1796 }
1797 }
1798
1799 /**------------------------------------------------------------------------------------------------
1800 * !IMPORTANT
1801 * MEANTORRENT CONFIG END
1802 * PLEASE DO NOT MODIFY THE FOLLOWING LINES !!!
1803 --------------------------------------------------------------------------------------------------*/
1804};