diff --git a/app/Console/Commands/Install/InitData.php b/app/Console/Commands/Install/InitData.php
new file mode 100644
index 00000000..6fd72cab
--- /dev/null
+++ b/app/Console/Commands/Install/InitData.php
@@ -0,0 +1,47 @@
+call('db:seed');
+ });
+ $this->info("[INIT DATA] success.");
+ return 0;
+ }
+}
diff --git a/app/Console/Commands/Install/Migrate.php b/app/Console/Commands/Install/Migrate.php
new file mode 100644
index 00000000..a76de7c8
--- /dev/null
+++ b/app/Console/Commands/Install/Migrate.php
@@ -0,0 +1,47 @@
+call('migrate');
+ });
+ $this->info("[MIGRATE TABLE] success.");
+ return 0;
+ }
+}
diff --git a/app/Console/Commands/Test.php b/app/Console/Commands/Test.php
index 4354ad42..38497a2a 100644
--- a/app/Console/Commands/Test.php
+++ b/app/Console/Commands/Test.php
@@ -17,6 +17,7 @@ use Illuminate\Encryption\Encrypter;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage;
+use Rhilip\Bencode\Bencode;
class Test extends Command
{
@@ -51,11 +52,9 @@ class Test extends Command
*/
public function handle()
{
- $reader = new Reader(resource_path('geoip/GeoLite2-City.mmdb'));
- $record = $reader->city('128.101.101.101');
- dump($record->city, $record->country, $record->location);
- $record2 = $reader->isp('128.101.101.101');
- dump($record2->isp);
+ $file = storage_path('logs/11270.torrent');
+ $r = Bencode::load($file);
+ dd($r);
}
}
diff --git a/app/Models/User.php b/app/Models/User.php
index bee6a3eb..1d295480 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -121,7 +121,7 @@ class User extends Authenticatable
public function checkIsNormal(array $fields = ['status', 'enabled'])
{
- if (in_array('visible', $fields) && $this->getAttribute('status') != self::STATUS_CONFIRMED) {
+ if (in_array('status', $fields) && $this->getAttribute('status') != self::STATUS_CONFIRMED) {
throw new \InvalidArgumentException(sprintf('User: %s is not confirmed.', $this->id));
}
if (in_array('enabled', $fields) && $this->getAttribute('enabled') != self::ENABLED_YES) {
diff --git a/app/Repositories/ExamRepository.php b/app/Repositories/ExamRepository.php
index 85030acc..6d1a711f 100644
--- a/app/Repositories/ExamRepository.php
+++ b/app/Repositories/ExamRepository.php
@@ -464,10 +464,12 @@ class ExamRepository extends BaseRepository
$join->on("$userTable.id", "=", "$examUserTable.uid")
->on("$examUserTable.status", "=", DB::raw(ExamUser::STATUS_NORMAL));
})
+ ->where('enabled', User::ENABLED_YES)
+ ->where('visible', User::STATUS_CONFIRMED)
->whereRaw("$examUserTable.id is null")
->selectRaw("$userTable.*")
->orderBy("$userTable.id", "asc");
- $size = 100;
+ $size = 1000;
$minId = 0;
$result = 0;
while (true) {
@@ -522,7 +524,7 @@ class ExamRepository extends BaseRepository
$baseQuery->whereRaw(sprintf("case %s else false end", implode(" ", $whenThens)));
}
- $size = 100;
+ $size = 1000;
$minId = 0;
$result = 0;
diff --git a/composer.json b/composer.json
index a7a38947..4a60c3a9 100644
--- a/composer.json
+++ b/composer.json
@@ -41,11 +41,13 @@
"laravel/tinker": "^2.5",
"nao-pon/flysystem-google-drive": "^1.1",
"orangehill/iseed": "^3.0",
+ "rhilip/bencode": "^1.1",
"swiftmailer/swiftmailer": "^6.2"
},
"require-dev": {
"facade/ignition": "^2.5",
"fakerphp/faker": "^1.9.1",
+ "kitloong/laravel-migrations-generator": "^4.4",
"laravel/sail": "^1.0.1",
"mockery/mockery": "^1.4.2",
"nunomaduro/collision": "^5.0",
diff --git a/composer.lock b/composer.lock
index f43bae28..823ee73d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "87d34a5b9914da908347ed77069167ea",
+ "content-hash": "a4f805b49bd52cf34ee5f763976ed030",
"packages": [
{
"name": "asm89/stack-cors",
@@ -4086,6 +4086,63 @@
],
"time": "2020-08-18T17:17:46+00:00"
},
+ {
+ "name": "rhilip/bencode",
+ "version": "v1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Rhilip/Bencode.git",
+ "reference": "d93fa6836ff6a0dcf199906537bce1f5eabfccf9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Rhilip/Bencode/zipball/d93fa6836ff6a0dcf199906537bce1f5eabfccf9",
+ "reference": "d93fa6836ff6a0dcf199906537bce1f5eabfccf9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.6|^7.0|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "suggest": {
+ "php-64bit": "Running 64 bit is recommended to prevent integer overflow"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Rhilip\\Bencode\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Rhilip",
+ "email": "rhilipruan@gmail.com"
+ }
+ ],
+ "description": "A pure and simple PHP library for encoding and decoding Bencode data",
+ "keywords": [
+ "bencode",
+ "bittorrent",
+ "torrent"
+ ],
+ "support": {
+ "issues": "https://github.com/Rhilip/Bencode/issues",
+ "source": "https://github.com/Rhilip/Bencode/tree/master"
+ },
+ "time": "2020-02-27T10:47:16+00:00"
+ },
{
"name": "swiftmailer/swiftmailer",
"version": "v6.2.7",
@@ -7154,6 +7211,77 @@
],
"time": "2020-07-09T08:09:16+00:00"
},
+ {
+ "name": "kitloong/laravel-migrations-generator",
+ "version": "4.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kitloong/laravel-migrations-generator.git",
+ "reference": "764a304216fbde1a2ed6645fb871105b884cfe54"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kitloong/laravel-migrations-generator/zipball/764a304216fbde1a2ed6645fb871105b884cfe54",
+ "reference": "764a304216fbde1a2ed6645fb871105b884cfe54",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/dbal": "~2.4|^3.0",
+ "illuminate/support": "^5.6|^6.0|^7.0|^8.0",
+ "php": ">=7.1.3"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.0",
+ "orchestra/testbench": "^3.6|^4.0|^5.0|^6.0",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "KitLoong\\MigrationsGenerator\\MigrationsGeneratorServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "KitLoong\\MigrationsGenerator\\": "src/KitLoong/MigrationsGenerator",
+ "Xethron\\MigrationsGenerator\\": "src/Xethron/MigrationsGenerator",
+ "Way\\Generators\\": "src/Way/Generators"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kit Loong",
+ "email": "kitloong1008@gmail.com"
+ }
+ ],
+ "description": "Generates Laravel Migrations from an existing database",
+ "keywords": [
+ "artisan",
+ "generator",
+ "laravel",
+ "lumen",
+ "migration",
+ "migrations"
+ ],
+ "support": {
+ "issues": "https://github.com/kitloong/laravel-migrations-generator/issues",
+ "source": "https://github.com/kitloong/laravel-migrations-generator/tree/4.x"
+ },
+ "time": "2020-12-31T05:58:25+00:00"
+ },
{
"name": "laravel/sail",
"version": "v1.4.10",
diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
new file mode 100644
index 00000000..3ce00023
--- /dev/null
+++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
@@ -0,0 +1,36 @@
+bigIncrements('id');
+ $table->morphs('tokenable');
+ $table->string('name');
+ $table->string('token', 64)->unique();
+ $table->text('abilities')->nullable();
+ $table->timestamp('last_used_at')->nullable();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('personal_access_tokens');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_adclicks_table.php b/database/migrations/2021_06_08_113437_create_adclicks_table.php
new file mode 100644
index 00000000..97c553e0
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_adclicks_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedInteger('adid')->nullable();
+ $table->unsignedInteger('userid')->nullable();
+ $table->dateTime('added')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('adclicks');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_adminpanel_table.php b/database/migrations/2021_06_08_113437_create_adminpanel_table.php
new file mode 100644
index 00000000..7cc5a28d
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_adminpanel_table.php
@@ -0,0 +1,33 @@
+tinyIncrements('id');
+ $table->string('name', 128)->default('');
+ $table->string('url')->default('');
+ $table->string('info')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('adminpanel');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_advertisements_table.php b/database/migrations/2021_06_08_113437_create_advertisements_table.php
new file mode 100644
index 00000000..cfa5ec69
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_advertisements_table.php
@@ -0,0 +1,39 @@
+mediumIncrements('id');
+ $table->boolean('enabled')->default(0);
+ $table->enum('type', ['bbcodes', 'xhtml', 'text', 'image', 'flash']);
+ $table->enum('position', ['header', 'footer', 'belownav', 'belowsearchbox', 'torrentdetail', 'comment', 'interoverforums', 'forumpost', 'popup']);
+ $table->tinyInteger('displayorder')->default(0);
+ $table->string('name')->default('');
+ $table->text('parameters');
+ $table->text('code');
+ $table->dateTime('starttime');
+ $table->dateTime('endtime');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('advertisements');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_agent_allowed_exception_table.php b/database/migrations/2021_06_08_113437_create_agent_allowed_exception_table.php
new file mode 100644
index 00000000..2c6cdcfa
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_agent_allowed_exception_table.php
@@ -0,0 +1,34 @@
+unsignedTinyInteger('family_id')->default(0)->index('family_id');
+ $table->string('name', 100)->default('');
+ $table->string('peer_id', 20)->default('');
+ $table->string('agent', 100)->default('');
+ $table->string('comment', 200)->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('agent_allowed_exception');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_agent_allowed_family_table.php b/database/migrations/2021_06_08_113437_create_agent_allowed_family_table.php
new file mode 100644
index 00000000..0b5dc89a
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_agent_allowed_family_table.php
@@ -0,0 +1,44 @@
+tinyIncrements('id');
+ $table->string('family', 50)->default('');
+ $table->string('start_name', 100)->default('');
+ $table->string('peer_id_pattern', 200)->default('');
+ $table->unsignedTinyInteger('peer_id_match_num')->default(0);
+ $table->enum('peer_id_matchtype', ['dec', 'hex'])->default('dec');
+ $table->string('peer_id_start', 20)->default('');
+ $table->string('agent_pattern', 200)->default('');
+ $table->unsignedTinyInteger('agent_match_num')->default(0);
+ $table->enum('agent_matchtype', ['dec', 'hex'])->default('dec');
+ $table->string('agent_start', 100)->default('');
+ $table->enum('exception', ['yes', 'no'])->default('no');
+ $table->enum('allowhttps', ['yes', 'no'])->default('no');
+ $table->string('comment', 200)->default('');
+ $table->unsignedMediumInteger('hits')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('agent_allowed_family');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_allowedemails_table.php b/database/migrations/2021_06_08_113437_create_allowedemails_table.php
new file mode 100644
index 00000000..71933611
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_allowedemails_table.php
@@ -0,0 +1,31 @@
+integer('id', true);
+ $table->mediumText('value');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('allowedemails');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_attachments_table.php b/database/migrations/2021_06_08_113437_create_attachments_table.php
new file mode 100644
index 00000000..78c62e22
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_attachments_table.php
@@ -0,0 +1,43 @@
+increments('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->unsignedSmallInteger('width')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->string('filename')->default('');
+ $table->char('dlkey', 32)->index('idx_delkey');
+ $table->string('filetype', 50)->default('');
+ $table->unsignedBigInteger('filesize')->default(0);
+ $table->string('location')->default('');
+ $table->mediumInteger('downloads')->default(0);
+ $table->boolean('isimage')->unsigned()->default(0);
+ $table->boolean('thumb')->unsigned()->default(0);
+ $table->index(['userid', 'id'], 'pid');
+ $table->index(['added', 'isimage', 'downloads'], 'dateline');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('attachments');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_attendance_table.php b/database/migrations/2021_06_08_113437_create_attendance_table.php
new file mode 100644
index 00000000..fbc61beb
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_attendance_table.php
@@ -0,0 +1,34 @@
+bigIncrements('id');
+ $table->unsignedInteger('uid')->default(0)->index('idx_uid');
+ $table->dateTime('added');
+ $table->unsignedInteger('points')->default(0);
+ $table->unsignedInteger('days')->default(1);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('attendance');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_audiocodecs_table.php b/database/migrations/2021_06_08_113437_create_audiocodecs_table.php
new file mode 100644
index 00000000..82b34f0a
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_audiocodecs_table.php
@@ -0,0 +1,33 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->string('image')->default('');
+ $table->unsignedTinyInteger('sort_index')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('audiocodecs');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_avps_table.php b/database/migrations/2021_06_08_113437_create_avps_table.php
new file mode 100644
index 00000000..6c1d003f
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_avps_table.php
@@ -0,0 +1,33 @@
+string('arg', 20)->default('')->primary();
+ $table->text('value_s');
+ $table->integer('value_i')->default(0);
+ $table->unsignedInteger('value_u')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('avps');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_bannedemails_table.php b/database/migrations/2021_06_08_113437_create_bannedemails_table.php
new file mode 100644
index 00000000..bd5182b8
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_bannedemails_table.php
@@ -0,0 +1,31 @@
+integer('id', true);
+ $table->mediumText('value');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('bannedemails');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_bans_table.php b/database/migrations/2021_06_08_113437_create_bans_table.php
new file mode 100644
index 00000000..390d57a5
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_bans_table.php
@@ -0,0 +1,36 @@
+smallIncrements('id');
+ $table->dateTime('added')->nullable();
+ $table->unsignedMediumInteger('addedby')->default(0);
+ $table->string('comment')->default('');
+ $table->bigInteger('first')->default(0);
+ $table->bigInteger('last')->default(0);
+ $table->index(['first', 'last'], 'first_last');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('bans');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_bitbucket_table.php b/database/migrations/2021_06_08_113437_create_bitbucket_table.php
new file mode 100644
index 00000000..29b56639
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_bitbucket_table.php
@@ -0,0 +1,34 @@
+increments('id');
+ $table->unsignedMediumInteger('owner')->default(0);
+ $table->string('name')->default('');
+ $table->dateTime('added')->nullable();
+ $table->enum('public', ['0', '1'])->default('0');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('bitbucket');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_blocks_table.php b/database/migrations/2021_06_08_113437_create_blocks_table.php
new file mode 100644
index 00000000..acaffc89
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_blocks_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->unsignedMediumInteger('blockid')->default(0);
+ $table->unique(['userid', 'blockid'], 'userfriend');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('blocks');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_bookmarks_table.php b/database/migrations/2021_06_08_113437_create_bookmarks_table.php
new file mode 100644
index 00000000..7c32513f
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_bookmarks_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('torrentid')->default(0);
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->index(['userid', 'torrentid'], 'userid_torrentid');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('bookmarks');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_categories_table.php b/database/migrations/2021_06_08_113437_create_categories_table.php
new file mode 100644
index 00000000..345403af
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_categories_table.php
@@ -0,0 +1,37 @@
+smallIncrements('id');
+ $table->unsignedTinyInteger('mode')->default(1);
+ $table->string('class_name')->default('');
+ $table->string('name', 30)->default('');
+ $table->string('image')->default('');
+ $table->unsignedSmallInteger('sort_index')->default(0);
+ $table->integer('icon_id')->default(0);
+ $table->index(['mode', 'sort_index'], 'mode_sort');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('categories');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_caticons_table.php b/database/migrations/2021_06_08_113437_create_caticons_table.php
new file mode 100644
index 00000000..0d718cf2
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_caticons_table.php
@@ -0,0 +1,37 @@
+tinyIncrements('id');
+ $table->string('name', 64)->default('');
+ $table->string('folder')->default('');
+ $table->string('cssfile')->default('');
+ $table->enum('multilang', ['yes', 'no'])->default('no');
+ $table->enum('secondicon', ['yes', 'no'])->default('no');
+ $table->string('designer', 50)->default('');
+ $table->string('comment')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('caticons');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_cheaters_table.php b/database/migrations/2021_06_08_113437_create_cheaters_table.php
new file mode 100644
index 00000000..2046bd9b
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_cheaters_table.php
@@ -0,0 +1,42 @@
+mediumIncrements('id');
+ $table->dateTime('added')->nullable();
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->unsignedMediumInteger('torrentid')->default(0);
+ $table->unsignedBigInteger('uploaded')->default(0);
+ $table->unsignedBigInteger('downloaded')->default(0);
+ $table->unsignedMediumInteger('anctime')->default(0);
+ $table->unsignedMediumInteger('seeders')->default(0);
+ $table->unsignedMediumInteger('leechers')->default(0);
+ $table->unsignedTinyInteger('hit')->default(0);
+ $table->unsignedMediumInteger('dealtby')->default(0);
+ $table->boolean('dealtwith')->default(0);
+ $table->string('comment')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('cheaters');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_chronicle_table.php b/database/migrations/2021_06_08_113437_create_chronicle_table.php
new file mode 100644
index 00000000..06d25762
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_chronicle_table.php
@@ -0,0 +1,33 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->dateTime('added')->nullable()->index('added');
+ $table->text('txt')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('chronicle');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_codecs_table.php b/database/migrations/2021_06_08_113437_create_codecs_table.php
new file mode 100644
index 00000000..a60e0c1d
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_codecs_table.php
@@ -0,0 +1,32 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->unsignedTinyInteger('sort_index')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('codecs');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_comments_table.php b/database/migrations/2021_06_08_113437_create_comments_table.php
new file mode 100644
index 00000000..2b3acf84
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_comments_table.php
@@ -0,0 +1,42 @@
+increments('id');
+ $table->unsignedMediumInteger('user')->default(0)->index('user');
+ $table->unsignedMediumInteger('torrent')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->text('text')->nullable();
+ $table->text('ori_text')->nullable();
+ $table->unsignedMediumInteger('editedby')->default(0);
+ $table->dateTime('editdate')->nullable();
+ $table->unsignedMediumInteger('offer')->default(0);
+ $table->integer('request')->default(0);
+ $table->enum('anonymous', ['yes', 'no'])->default('no');
+ $table->index(['torrent', 'id'], 'torrent_id');
+ $table->index(['offer', 'id'], 'offer_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('comments');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_countries_table.php b/database/migrations/2021_06_08_113437_create_countries_table.php
new file mode 100644
index 00000000..6dd53362
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_countries_table.php
@@ -0,0 +1,32 @@
+smallIncrements('id');
+ $table->string('name', 50)->default('');
+ $table->string('flagpic')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('countries');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_downloadspeed_table.php b/database/migrations/2021_06_08_113437_create_downloadspeed_table.php
new file mode 100644
index 00000000..c5ccdfa2
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_downloadspeed_table.php
@@ -0,0 +1,31 @@
+tinyIncrements('id');
+ $table->string('name', 50)->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('downloadspeed');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_exam_progress_table.php b/database/migrations/2021_06_08_113437_create_exam_progress_table.php
new file mode 100644
index 00000000..cde7643c
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_exam_progress_table.php
@@ -0,0 +1,37 @@
+bigIncrements('id');
+ $table->integer('exam_user_id')->index();
+ $table->integer('exam_id')->index();
+ $table->integer('uid')->index();
+ $table->integer('torrent_id');
+ $table->integer('index');
+ $table->bigInteger('value');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('exam_progress');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_exam_users_table.php b/database/migrations/2021_06_08_113437_create_exam_users_table.php
new file mode 100644
index 00000000..caa606c0
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_exam_users_table.php
@@ -0,0 +1,38 @@
+bigIncrements('id');
+ $table->integer('uid')->index();
+ $table->integer('exam_id')->index();
+ $table->integer('status')->default(0);
+ $table->dateTime('begin')->nullable();
+ $table->dateTime('end')->nullable();
+ $table->text('progress')->nullable();
+ $table->tinyInteger('is_done')->default(0);
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('exam_users');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_exams_table.php b/database/migrations/2021_06_08_113437_create_exams_table.php
new file mode 100644
index 00000000..efabe263
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_exams_table.php
@@ -0,0 +1,40 @@
+bigIncrements('id');
+ $table->string('name');
+ $table->text('description')->nullable();
+ $table->dateTime('begin')->nullable();
+ $table->dateTime('end')->nullable();
+ $table->integer('duration')->default(0);
+ $table->text('filters')->nullable();
+ $table->text('indexes');
+ $table->tinyInteger('status')->default(0);
+ $table->tinyInteger('is_discovered')->default(0);
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('exams');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_failed_jobs_table.php b/database/migrations/2021_06_08_113437_create_failed_jobs_table.php
new file mode 100644
index 00000000..e39723c7
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_failed_jobs_table.php
@@ -0,0 +1,36 @@
+bigIncrements('id');
+ $table->string('uuid')->unique();
+ $table->text('connection');
+ $table->text('queue');
+ $table->longText('payload');
+ $table->longText('exception');
+ $table->timestamp('failed_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('failed_jobs');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_faq_table.php b/database/migrations/2021_06_08_113437_create_faq_table.php
new file mode 100644
index 00000000..357e9d82
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_faq_table.php
@@ -0,0 +1,38 @@
+smallIncrements('id');
+ $table->unsignedSmallInteger('link_id')->default(0);
+ $table->unsignedSmallInteger('lang_id')->default(6);
+ $table->enum('type', ['categ', 'item'])->default('item');
+ $table->text('question');
+ $table->text('answer');
+ $table->unsignedTinyInteger('flag')->default(1);
+ $table->unsignedSmallInteger('categ')->default(0);
+ $table->unsignedSmallInteger('order')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('faq');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_files_table.php b/database/migrations/2021_06_08_113437_create_files_table.php
new file mode 100644
index 00000000..d4c8adce
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_files_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('torrent')->default(0)->index('torrent');
+ $table->string('filename')->default('');
+ $table->unsignedBigInteger('size')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('files');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_forummods_table.php b/database/migrations/2021_06_08_113437_create_forummods_table.php
new file mode 100644
index 00000000..a520e5d3
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_forummods_table.php
@@ -0,0 +1,32 @@
+smallIncrements('id');
+ $table->unsignedSmallInteger('forumid')->default(0)->index('forumid');
+ $table->unsignedMediumInteger('userid')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('forummods');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_forums_table.php b/database/migrations/2021_06_08_113437_create_forums_table.php
new file mode 100644
index 00000000..b10c173d
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_forums_table.php
@@ -0,0 +1,39 @@
+smallIncrements('id');
+ $table->unsignedSmallInteger('sort')->default(0);
+ $table->string('name', 60)->default('');
+ $table->string('description')->default('');
+ $table->unsignedTinyInteger('minclassread')->default(0);
+ $table->unsignedTinyInteger('minclasswrite')->default(0);
+ $table->unsignedInteger('postcount')->default(0);
+ $table->unsignedInteger('topiccount')->default(0);
+ $table->unsignedTinyInteger('minclasscreate')->default(0);
+ $table->unsignedSmallInteger('forid')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('forums');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_friends_table.php b/database/migrations/2021_06_08_113437_create_friends_table.php
new file mode 100644
index 00000000..e8063535
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_friends_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->unsignedMediumInteger('friendid')->default(0);
+ $table->unique(['userid', 'friendid'], 'userfriend');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('friends');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_fun_table.php b/database/migrations/2021_06_08_113437_create_fun_table.php
new file mode 100644
index 00000000..34bab498
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_fun_table.php
@@ -0,0 +1,35 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->text('body')->nullable();
+ $table->string('title')->default('');
+ $table->enum('status', ['normal', 'dull', 'notfunny', 'funny', 'veryfunny', 'banned'])->default('normal');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('fun');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_funds_table.php b/database/migrations/2021_06_08_113437_create_funds_table.php
new file mode 100644
index 00000000..c83c3286
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_funds_table.php
@@ -0,0 +1,35 @@
+increments('id');
+ $table->decimal('usd')->default(0.00);
+ $table->decimal('cny')->default(0.00);
+ $table->unsignedMediumInteger('user')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->string('memo')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('funds');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_funvotes_table.php b/database/migrations/2021_06_08_113437_create_funvotes_table.php
new file mode 100644
index 00000000..9f0d7f6f
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_funvotes_table.php
@@ -0,0 +1,34 @@
+unsignedMediumInteger('funid');
+ $table->unsignedMediumInteger('userid');
+ $table->dateTime('added')->nullable();
+ $table->enum('vote', ['fun', 'dull'])->default('fun');
+ $table->primary(['funid', 'userid']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('funvotes');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_invites_table.php b/database/migrations/2021_06_08_113437_create_invites_table.php
new file mode 100644
index 00000000..a918b905
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_invites_table.php
@@ -0,0 +1,38 @@
+increments('id');
+ $table->unsignedMediumInteger('inviter')->default(0);
+ $table->string('invitee', 80)->default('');
+ $table->char('hash', 32)->index('hash');
+ $table->dateTime('time_invited')->nullable();
+ $table->tinyInteger('valid')->default(1);
+ $table->integer('invitee_register_uid')->nullable();
+ $table->string('invitee_register_email')->nullable();
+ $table->string('invitee_register_username')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('invites');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_iplog_table.php b/database/migrations/2021_06_08_113437_create_iplog_table.php
new file mode 100644
index 00000000..b19caf41
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_iplog_table.php
@@ -0,0 +1,33 @@
+bigIncrements('id');
+ $table->string('ip', 64)->default('');
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->dateTime('access')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('iplog');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_isp_table.php b/database/migrations/2021_06_08_113437_create_isp_table.php
new file mode 100644
index 00000000..da7c154e
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_isp_table.php
@@ -0,0 +1,31 @@
+tinyIncrements('id');
+ $table->string('name', 50)->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('isp');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_language_table.php b/database/migrations/2021_06_08_113437_create_language_table.php
new file mode 100644
index 00000000..f0a88fdc
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_language_table.php
@@ -0,0 +1,37 @@
+smallIncrements('id');
+ $table->string('lang_name', 50)->default('');
+ $table->string('flagpic')->default('');
+ $table->unsignedTinyInteger('sub_lang')->default(1);
+ $table->unsignedTinyInteger('rule_lang')->default(0);
+ $table->unsignedTinyInteger('site_lang')->default(0);
+ $table->string('site_lang_folder')->default('');
+ $table->enum('trans_state', ['up-to-date', 'outdate', 'incomplete', 'need-new', 'unavailable'])->default('unavailable');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('language');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_links_table.php b/database/migrations/2021_06_08_113437_create_links_table.php
new file mode 100644
index 00000000..515d8193
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_links_table.php
@@ -0,0 +1,33 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->string('url')->default('');
+ $table->string('title', 50)->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('links');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_locations_table.php b/database/migrations/2021_06_08_113437_create_locations_table.php
new file mode 100644
index 00000000..8e8eac4c
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_locations_table.php
@@ -0,0 +1,41 @@
+increments('id');
+ $table->string('name', 50)->nullable();
+ $table->string('location_main', 200)->default('');
+ $table->string('location_sub', 200)->default('');
+ $table->string('flagpic', 50)->nullable();
+ $table->string('start_ip', 20)->default('');
+ $table->string('end_ip', 20)->default('');
+ $table->unsignedInteger('theory_upspeed')->default(10);
+ $table->unsignedInteger('practical_upspeed')->default(10);
+ $table->unsignedInteger('theory_downspeed')->default(10);
+ $table->unsignedInteger('practical_downspeed')->default(10);
+ $table->unsignedInteger('hit')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('locations');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_loginattempts_table.php b/database/migrations/2021_06_08_113437_create_loginattempts_table.php
new file mode 100644
index 00000000..50e9d4aa
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_loginattempts_table.php
@@ -0,0 +1,35 @@
+increments('id');
+ $table->string('ip', 64)->default('');
+ $table->dateTime('added')->nullable();
+ $table->enum('banned', ['yes', 'no'])->default('no');
+ $table->unsignedSmallInteger('attempts')->default(0);
+ $table->enum('type', ['login', 'recover'])->default('login');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('loginattempts');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_magic_table.php b/database/migrations/2021_06_08_113437_create_magic_table.php
new file mode 100644
index 00000000..507ada4c
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_magic_table.php
@@ -0,0 +1,35 @@
+bigIncrements('id');
+ $table->integer('torrentid')->default(0)->index('idx_torrentid');
+ $table->integer('userid')->default(0)->index('idx_userid');
+ $table->integer('value')->default(0);
+ $table->timestamp('created_at')->useCurrent();
+ $table->timestamp('updated_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('magic');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_media_table.php b/database/migrations/2021_06_08_113437_create_media_table.php
new file mode 100644
index 00000000..1da55be6
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_media_table.php
@@ -0,0 +1,32 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->unsignedTinyInteger('sort_index')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('media');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_messages_table.php b/database/migrations/2021_06_08_113437_create_messages_table.php
new file mode 100644
index 00000000..65c56749
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_messages_table.php
@@ -0,0 +1,38 @@
+increments('id');
+ $table->unsignedMediumInteger('sender')->default(0)->index('sender');
+ $table->unsignedMediumInteger('receiver')->default(0)->index('receiver');
+ $table->dateTime('added')->nullable();
+ $table->string('subject', 128)->default('');
+ $table->text('msg')->nullable();
+ $table->enum('unread', ['yes', 'no'])->default('yes');
+ $table->smallInteger('location')->default(1);
+ $table->enum('saved', ['no', 'yes'])->default('no');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('messages');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_modpanel_table.php b/database/migrations/2021_06_08_113437_create_modpanel_table.php
new file mode 100644
index 00000000..23ea3dbd
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_modpanel_table.php
@@ -0,0 +1,33 @@
+tinyIncrements('id');
+ $table->string('name', 128)->default('');
+ $table->string('url')->default('');
+ $table->string('info')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('modpanel');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_news_table.php b/database/migrations/2021_06_08_113437_create_news_table.php
new file mode 100644
index 00000000..be4a42aa
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_news_table.php
@@ -0,0 +1,35 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->dateTime('added')->nullable()->index('added');
+ $table->text('body')->nullable();
+ $table->string('title')->default('');
+ $table->enum('notify', ['yes', 'no'])->default('no');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('news');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_offers_table.php b/database/migrations/2021_06_08_113437_create_offers_table.php
new file mode 100644
index 00000000..12885a5b
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_offers_table.php
@@ -0,0 +1,40 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->string('name', 225)->default('');
+ $table->text('descr')->nullable();
+ $table->dateTime('added')->nullable();
+ $table->dateTime('allowedtime')->nullable();
+ $table->unsignedSmallInteger('yeah')->default(0);
+ $table->unsignedSmallInteger('against')->default(0);
+ $table->unsignedSmallInteger('category')->default(0);
+ $table->unsignedMediumInteger('comments')->default(0);
+ $table->enum('allowed', ['allowed', 'pending', 'denied'])->default('pending');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('offers');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_offervotes_table.php b/database/migrations/2021_06_08_113437_create_offervotes_table.php
new file mode 100644
index 00000000..b387eb3c
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_offervotes_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('offerid')->default(0);
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->enum('vote', ['yeah', 'against'])->default('yeah');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('offervotes');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_overforums_table.php b/database/migrations/2021_06_08_113437_create_overforums_table.php
new file mode 100644
index 00000000..ae752865
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_overforums_table.php
@@ -0,0 +1,34 @@
+smallIncrements('id');
+ $table->string('name', 60)->default('');
+ $table->string('description')->default('');
+ $table->unsignedTinyInteger('minclassview')->default(0);
+ $table->unsignedTinyInteger('sort')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('overforums');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_peers_table.php b/database/migrations/2021_06_08_113437_create_peers_table.php
new file mode 100644
index 00000000..60a9b08b
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_peers_table.php
@@ -0,0 +1,48 @@
+increments('id');
+ $table->unsignedMediumInteger('torrent')->default(0)->index('torrent');
+ $table->binary('peer_id');
+ $table->string('ip', 64)->default('');
+ $table->unsignedSmallInteger('port')->default(0);
+ $table->unsignedBigInteger('uploaded')->default(0);
+ $table->unsignedBigInteger('downloaded')->default(0);
+ $table->unsignedBigInteger('to_go')->default(0);
+ $table->enum('seeder', ['yes', 'no'])->default('no');
+ $table->dateTime('started')->nullable();
+ $table->dateTime('last_action')->nullable();
+ $table->dateTime('prev_action')->nullable();
+ $table->enum('connectable', ['yes', 'no'])->default('yes');
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->string('agent', 60)->default('');
+ $table->unsignedInteger('finishedat')->default(0);
+ $table->unsignedBigInteger('downloadoffset')->default(0);
+ $table->unsignedBigInteger('uploadoffset')->default(0);
+ $table->char('passkey', 32)->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('peers');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_pmboxes_table.php b/database/migrations/2021_06_08_113437_create_pmboxes_table.php
new file mode 100644
index 00000000..8843df4c
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_pmboxes_table.php
@@ -0,0 +1,33 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->unsignedTinyInteger('boxnumber')->default(2);
+ $table->string('name', 15)->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('pmboxes');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_pollanswers_table.php b/database/migrations/2021_06_08_113437_create_pollanswers_table.php
new file mode 100644
index 00000000..00618c47
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_pollanswers_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('pollid')->default(0)->index('pollid');
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->unsignedTinyInteger('selection')->default(0)->index('selection');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('pollanswers');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_polls_table.php b/database/migrations/2021_06_08_113437_create_polls_table.php
new file mode 100644
index 00000000..1ce29365
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_polls_table.php
@@ -0,0 +1,52 @@
+mediumIncrements('id');
+ $table->dateTime('added')->nullable();
+ $table->string('question')->default('');
+ $table->string('option0', 40)->default('');
+ $table->string('option1', 40)->default('');
+ $table->string('option2', 40)->default('');
+ $table->string('option3', 40)->default('');
+ $table->string('option4', 40)->default('');
+ $table->string('option5', 40)->default('');
+ $table->string('option6', 40)->default('');
+ $table->string('option7', 40)->default('');
+ $table->string('option8', 40)->default('');
+ $table->string('option9', 40)->default('');
+ $table->string('option10', 40)->default('');
+ $table->string('option11', 40)->default('');
+ $table->string('option12', 40)->default('');
+ $table->string('option13', 40)->default('');
+ $table->string('option14', 40)->default('');
+ $table->string('option15', 40)->default('');
+ $table->string('option16', 40)->default('');
+ $table->string('option17', 40)->default('');
+ $table->string('option18', 40)->default('');
+ $table->string('option19', 40)->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('polls');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_posts_table.php b/database/migrations/2021_06_08_113437_create_posts_table.php
new file mode 100644
index 00000000..82af140a
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_posts_table.php
@@ -0,0 +1,38 @@
+increments('id');
+ $table->unsignedMediumInteger('topicid')->default(0);
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->dateTime('added')->nullable()->index('added');
+ $table->text('body')->nullable()->index('body');
+ $table->text('ori_body')->nullable();
+ $table->unsignedMediumInteger('editedby')->default(0);
+ $table->dateTime('editdate')->nullable();
+ $table->index(['topicid', 'id'], 'topicid_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('posts');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_processings_table.php b/database/migrations/2021_06_08_113437_create_processings_table.php
new file mode 100644
index 00000000..bd725f08
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_processings_table.php
@@ -0,0 +1,32 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->unsignedTinyInteger('sort_index')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('processings');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_prolinkclicks_table.php b/database/migrations/2021_06_08_113437_create_prolinkclicks_table.php
new file mode 100644
index 00000000..b12e7688
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_prolinkclicks_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->string('ip', 64)->default('');
+ $table->dateTime('added')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('prolinkclicks');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_readposts_table.php b/database/migrations/2021_06_08_113437_create_readposts_table.php
new file mode 100644
index 00000000..ce305844
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_readposts_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->unsignedMediumInteger('topicid')->default(0)->index('topicid');
+ $table->unsignedInteger('lastpostread')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('readposts');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_regimages_table.php b/database/migrations/2021_06_08_113437_create_regimages_table.php
new file mode 100644
index 00000000..63064568
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_regimages_table.php
@@ -0,0 +1,33 @@
+mediumIncrements('id');
+ $table->string('imagehash', 32)->default('');
+ $table->string('imagestring', 8)->default('');
+ $table->unsignedInteger('dateline')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('regimages');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_reports_table.php b/database/migrations/2021_06_08_113437_create_reports_table.php
new file mode 100644
index 00000000..d1fa9661
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_reports_table.php
@@ -0,0 +1,37 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('addedby')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->unsignedInteger('reportid')->default(0);
+ $table->enum('type', ['torrent', 'user', 'offer', 'request', 'post', 'comment', 'subtitle'])->default('torrent');
+ $table->string('reason')->default('');
+ $table->unsignedMediumInteger('dealtby')->default(0);
+ $table->boolean('dealtwith')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('reports');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_requests_table.php b/database/migrations/2021_06_08_113437_create_requests_table.php
new file mode 100644
index 00000000..b5cfc7cf
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_requests_table.php
@@ -0,0 +1,44 @@
+increments('id');
+ $table->unsignedInteger('userid')->default(0)->index('userid');
+ $table->string('request', 225)->default('');
+ $table->text('descr');
+ $table->unsignedInteger('comments')->default(0);
+ $table->unsignedInteger('hits')->default(0);
+ $table->unsignedInteger('cat')->default(0);
+ $table->unsignedInteger('filledby')->default(0);
+ $table->unsignedInteger('torrentid')->default(0);
+ $table->enum('finish', ['yes', 'no'])->default('no');
+ $table->integer('amount')->default(0);
+ $table->string('ori_descr')->default('');
+ $table->integer('ori_amount')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->index(['finish', 'userid'], 'finish, userid');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('requests');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_resreq_table.php b/database/migrations/2021_06_08_113437_create_resreq_table.php
new file mode 100644
index 00000000..57b0654a
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_resreq_table.php
@@ -0,0 +1,33 @@
+integer('id', true);
+ $table->integer('reqid')->default(0)->index('reqid');
+ $table->integer('torrentid')->default(0);
+ $table->enum('chosen', ['yes', 'no'])->default('no');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('resreq');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_rules_table.php b/database/migrations/2021_06_08_113437_create_rules_table.php
new file mode 100644
index 00000000..fd6868cf
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_rules_table.php
@@ -0,0 +1,33 @@
+smallIncrements('id');
+ $table->unsignedSmallInteger('lang_id')->default(6);
+ $table->string('title')->default('');
+ $table->text('text')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('rules');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_schools_table.php b/database/migrations/2021_06_08_113437_create_schools_table.php
new file mode 100644
index 00000000..d97d2449
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_schools_table.php
@@ -0,0 +1,31 @@
+smallIncrements('id');
+ $table->string('name', 50)->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('schools');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_searchbox_fields_table.php b/database/migrations/2021_06_08_113437_create_searchbox_fields_table.php
new file mode 100644
index 00000000..7666e903
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_searchbox_fields_table.php
@@ -0,0 +1,36 @@
+integer('id', true);
+ $table->integer('searchbox_id');
+ $table->string('field_type');
+ $table->integer('field_id')->default(0);
+ $table->timestamp('created_at')->useCurrent();
+ $table->timestamp('update_at')->useCurrent();
+ $table->unique(['searchbox_id', 'field_type', 'field_id'], 'uniq_searchbox_type_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('searchbox_fields');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_searchbox_table.php b/database/migrations/2021_06_08_113437_create_searchbox_table.php
new file mode 100644
index 00000000..9a3f4b88
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_searchbox_table.php
@@ -0,0 +1,44 @@
+smallIncrements('id');
+ $table->string('name', 30)->nullable();
+ $table->boolean('showsubcat')->default(0);
+ $table->boolean('showsource')->default(0);
+ $table->boolean('showmedium')->default(0);
+ $table->boolean('showcodec')->default(0);
+ $table->boolean('showstandard')->default(0);
+ $table->boolean('showprocessing')->default(0);
+ $table->boolean('showteam')->default(0);
+ $table->boolean('showaudiocodec')->default(0);
+ $table->unsignedSmallInteger('catsperrow')->default(7);
+ $table->unsignedSmallInteger('catpadding')->default(25);
+ $table->text('custom_fields')->nullable();
+ $table->string('custom_fields_display_name')->default('');
+ $table->text('custom_fields_display')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('searchbox');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_secondicons_table.php b/database/migrations/2021_06_08_113437_create_secondicons_table.php
new file mode 100644
index 00000000..c23d7a9e
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_secondicons_table.php
@@ -0,0 +1,40 @@
+smallIncrements('id');
+ $table->unsignedTinyInteger('source')->default(0);
+ $table->unsignedTinyInteger('medium')->default(0);
+ $table->unsignedTinyInteger('codec')->default(0);
+ $table->unsignedTinyInteger('standard')->default(0);
+ $table->unsignedTinyInteger('processing')->default(0);
+ $table->unsignedTinyInteger('team')->default(0);
+ $table->unsignedTinyInteger('audiocodec')->default(0);
+ $table->string('name', 30)->default('');
+ $table->string('class_name')->nullable();
+ $table->string('image')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('secondicons');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_settings_table.php b/database/migrations/2021_06_08_113437_create_settings_table.php
new file mode 100644
index 00000000..496cb83d
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_settings_table.php
@@ -0,0 +1,34 @@
+integer('id', true);
+ $table->string('name')->default('')->unique('uniqe_name');
+ $table->mediumText('value')->nullable();
+ $table->timestamp('created_at')->useCurrent();
+ $table->timestamp('updated_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('settings');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_shoutbox_table.php b/database/migrations/2021_06_08_113437_create_shoutbox_table.php
new file mode 100644
index 00000000..1d0fa2ce
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_shoutbox_table.php
@@ -0,0 +1,34 @@
+integer('id', true);
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->unsignedInteger('date')->default(0);
+ $table->text('text');
+ $table->enum('type', ['sb', 'hb'])->default('sb');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('shoutbox');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_sitelog_table.php b/database/migrations/2021_06_08_113437_create_sitelog_table.php
new file mode 100644
index 00000000..cd3046f5
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_sitelog_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->dateTime('added')->nullable()->index('added');
+ $table->text('txt');
+ $table->enum('security_level', ['normal', 'mod'])->default('normal');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('sitelog');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_snatched_table.php b/database/migrations/2021_06_08_113437_create_snatched_table.php
new file mode 100644
index 00000000..cd575320
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_snatched_table.php
@@ -0,0 +1,44 @@
+integer('id', true);
+ $table->unsignedMediumInteger('torrentid')->default(0);
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->string('ip', 64)->default('');
+ $table->unsignedSmallInteger('port')->default(0);
+ $table->unsignedBigInteger('uploaded')->default(0);
+ $table->unsignedBigInteger('downloaded')->default(0);
+ $table->unsignedBigInteger('to_go')->default(0);
+ $table->unsignedInteger('seedtime')->default(0);
+ $table->unsignedInteger('leechtime')->default(0);
+ $table->dateTime('last_action')->nullable();
+ $table->dateTime('startdat')->nullable();
+ $table->dateTime('completedat')->nullable();
+ $table->enum('finished', ['yes', 'no'])->default('no');
+ $table->index(['torrentid', 'userid'], 'torrentid_userid');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('snatched');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_sources_table.php b/database/migrations/2021_06_08_113437_create_sources_table.php
new file mode 100644
index 00000000..37ad656d
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_sources_table.php
@@ -0,0 +1,32 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->unsignedTinyInteger('sort_index')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('sources');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_staffmessages_table.php b/database/migrations/2021_06_08_113437_create_staffmessages_table.php
new file mode 100644
index 00000000..14b5aba9
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_staffmessages_table.php
@@ -0,0 +1,37 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('sender')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->text('msg')->nullable();
+ $table->string('subject', 128)->default('');
+ $table->unsignedMediumInteger('answeredby')->default(0);
+ $table->boolean('answered')->default(0);
+ $table->text('answer')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('staffmessages');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_standards_table.php b/database/migrations/2021_06_08_113437_create_standards_table.php
new file mode 100644
index 00000000..8f17ccb8
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_standards_table.php
@@ -0,0 +1,32 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->unsignedTinyInteger('sort_index')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('standards');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_stylesheets_table.php b/database/migrations/2021_06_08_113437_create_stylesheets_table.php
new file mode 100644
index 00000000..422c52cf
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_stylesheets_table.php
@@ -0,0 +1,35 @@
+tinyIncrements('id');
+ $table->string('uri')->default('');
+ $table->string('name', 64)->default('');
+ $table->text('addicode')->nullable();
+ $table->string('designer', 50)->default('');
+ $table->string('comment')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('stylesheets');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_subs_table.php b/database/migrations/2021_06_08_113437_create_subs_table.php
new file mode 100644
index 00000000..293208c2
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_subs_table.php
@@ -0,0 +1,41 @@
+increments('id');
+ $table->unsignedMediumInteger('torrent_id')->default(0);
+ $table->unsignedSmallInteger('lang_id')->default(0);
+ $table->string('title')->default('');
+ $table->string('filename')->default('');
+ $table->dateTime('added')->nullable();
+ $table->unsignedBigInteger('size')->default(0);
+ $table->unsignedMediumInteger('uppedby')->default(0);
+ $table->enum('anonymous', ['yes', 'no'])->default('no');
+ $table->unsignedMediumInteger('hits')->default(0);
+ $table->string('ext', 10)->default('');
+ $table->index(['torrent_id', 'lang_id'], 'torrentid_langid');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('subs');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_suggest_table.php b/database/migrations/2021_06_08_113437_create_suggest_table.php
new file mode 100644
index 00000000..b407222c
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_suggest_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->string('keywords')->default('')->index('keywords');
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->dateTime('adddate')->nullable()->index('adddate');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('suggest');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_sysoppanel_table.php b/database/migrations/2021_06_08_113437_create_sysoppanel_table.php
new file mode 100644
index 00000000..5c9e9c42
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_sysoppanel_table.php
@@ -0,0 +1,33 @@
+tinyIncrements('id');
+ $table->string('name', 128)->default('');
+ $table->string('url')->default('');
+ $table->string('info')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('sysoppanel');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_teams_table.php b/database/migrations/2021_06_08_113437_create_teams_table.php
new file mode 100644
index 00000000..d3f2387e
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_teams_table.php
@@ -0,0 +1,32 @@
+tinyIncrements('id');
+ $table->string('name', 30)->default('');
+ $table->unsignedTinyInteger('sort_index')->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('teams');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_thanks_table.php b/database/migrations/2021_06_08_113437_create_thanks_table.php
new file mode 100644
index 00000000..61decd26
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_thanks_table.php
@@ -0,0 +1,34 @@
+increments('id');
+ $table->unsignedMediumInteger('torrentid')->default(0);
+ $table->unsignedMediumInteger('userid')->default(0);
+ $table->unique(['torrentid', 'id'], 'torrentid_id');
+ $table->index(['torrentid', 'userid'], 'torrentid_userid');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('thanks');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_topics_table.php b/database/migrations/2021_06_08_113437_create_topics_table.php
new file mode 100644
index 00000000..38329bfd
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_topics_table.php
@@ -0,0 +1,41 @@
+mediumIncrements('id');
+ $table->unsignedMediumInteger('userid')->default(0)->index('userid');
+ $table->string('subject', 128)->default('')->index('subject');
+ $table->enum('locked', ['yes', 'no'])->default('no');
+ $table->unsignedSmallInteger('forumid')->default(0);
+ $table->unsignedInteger('firstpost')->default(0);
+ $table->unsignedInteger('lastpost')->default(0);
+ $table->enum('sticky', ['no', 'yes'])->default('no');
+ $table->unsignedTinyInteger('hlcolor')->default(0);
+ $table->unsignedInteger('views')->default(0);
+ $table->index(['forumid', 'lastpost'], 'forumid_lastpost');
+ $table->index(['forumid', 'sticky', 'lastpost'], 'forumid_sticky_lastpost');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('topics');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_torrent_secrets_table.php b/database/migrations/2021_06_08_113437_create_torrent_secrets_table.php
new file mode 100644
index 00000000..3f59d0bd
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_torrent_secrets_table.php
@@ -0,0 +1,35 @@
+integer('id', true);
+ $table->integer('uid')->index('idx_uid');
+ $table->integer('torrent_id')->default(0)->index('idx_torrent_id');
+ $table->string('secret');
+ $table->timestamp('created_at')->useCurrent();
+ $table->timestamp('updated_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('torrent_secrets');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_torrents_custom_field_values_table.php b/database/migrations/2021_06_08_113437_create_torrents_custom_field_values_table.php
new file mode 100644
index 00000000..6d23d12e
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_torrents_custom_field_values_table.php
@@ -0,0 +1,35 @@
+integer('id', true);
+ $table->integer('torrent_id')->default(0)->index('idx_torrent_id');
+ $table->integer('custom_field_id')->default(0)->index('idx_field_id');
+ $table->mediumText('custom_field_value')->nullable()->index('idx_field_value');
+ $table->dateTime('created_at');
+ $table->dateTime('updated_at');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('torrents_custom_field_values');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_torrents_custom_fields_table.php b/database/migrations/2021_06_08_113437_create_torrents_custom_fields_table.php
new file mode 100644
index 00000000..47367f7a
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_torrents_custom_fields_table.php
@@ -0,0 +1,39 @@
+integer('id', true);
+ $table->string('name')->default('');
+ $table->string('label')->default('');
+ $table->enum('type', ['text', 'textarea', 'select', 'radio', 'checkbox', 'image']);
+ $table->tinyInteger('required')->default(0);
+ $table->integer('is_single_row')->default(0);
+ $table->text('options')->nullable();
+ $table->text('help')->nullable();
+ $table->dateTime('created_at');
+ $table->dateTime('updated_at');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('torrents_custom_fields');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_torrents_state_table.php b/database/migrations/2021_06_08_113437_create_torrents_state_table.php
new file mode 100644
index 00000000..6505ffb2
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_torrents_state_table.php
@@ -0,0 +1,30 @@
+unsignedTinyInteger('global_sp_state')->default(1);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('torrents_state');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_torrents_table.php b/database/migrations/2021_06_08_113437_create_torrents_table.php
new file mode 100644
index 00000000..c7c6a9a8
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_torrents_table.php
@@ -0,0 +1,76 @@
+mediumIncrements('id');
+ $table->binary('info_hash')->unique('info_hash');
+ $table->string('name')->default('')->index('name');
+ $table->string('filename')->default('');
+ $table->string('save_as')->default('');
+ $table->text('descr')->nullable();
+ $table->string('small_descr')->default('');
+ $table->text('ori_descr')->nullable();
+ $table->unsignedSmallInteger('category')->default(0);
+ $table->unsignedTinyInteger('source')->default(0);
+ $table->unsignedTinyInteger('medium')->default(0);
+ $table->unsignedTinyInteger('codec')->default(0);
+ $table->unsignedTinyInteger('standard')->default(0);
+ $table->unsignedTinyInteger('processing')->default(0);
+ $table->unsignedTinyInteger('team')->default(0);
+ $table->unsignedTinyInteger('audiocodec')->default(0);
+ $table->unsignedBigInteger('size')->default(0);
+ $table->dateTime('added')->nullable();
+ $table->enum('type', ['single', 'multi'])->default('single');
+ $table->unsignedSmallInteger('numfiles')->default(0);
+ $table->unsignedMediumInteger('comments')->default(0);
+ $table->unsignedInteger('views')->default(0);
+ $table->unsignedInteger('hits')->default(0);
+ $table->unsignedMediumInteger('times_completed')->default(0);
+ $table->unsignedMediumInteger('leechers')->default(0);
+ $table->unsignedMediumInteger('seeders')->default(0);
+ $table->dateTime('last_action')->nullable();
+ $table->enum('visible', ['yes', 'no'])->default('yes');
+ $table->enum('banned', ['yes', 'no'])->default('no');
+ $table->unsignedMediumInteger('owner')->default(0)->index('owner');
+ $table->binary('nfo')->nullable();
+ $table->unsignedTinyInteger('sp_state')->default(1);
+ $table->unsignedTinyInteger('promotion_time_type')->default(0);
+ $table->dateTime('promotion_until')->nullable();
+ $table->enum('anonymous', ['yes', 'no'])->default('no');
+ $table->unsignedInteger('url')->nullable()->index('url');
+ $table->string('pos_state', 32)->default('normal');
+ $table->unsignedTinyInteger('cache_stamp')->default(0);
+ $table->enum('picktype', ['hot', 'classic', 'recommended', 'normal'])->default('normal');
+ $table->dateTime('picktime')->nullable();
+ $table->dateTime('last_reseed')->nullable();
+ $table->mediumText('pt_gen')->nullable();
+ $table->integer('tags')->default(0);
+ $table->text('technical_info')->nullable();
+ $table->index(['visible', 'pos_state', 'id'], 'visible_pos_id');
+ $table->index(['category', 'visible', 'banned'], 'category_visible_banned');
+ $table->index(['visible', 'banned', 'pos_state', 'id'], 'visible_banned_pos_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('torrents');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_uploadspeed_table.php b/database/migrations/2021_06_08_113437_create_uploadspeed_table.php
new file mode 100644
index 00000000..2e97591c
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_uploadspeed_table.php
@@ -0,0 +1,31 @@
+tinyIncrements('id');
+ $table->string('name', 50)->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('uploadspeed');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_user_ban_logs_table.php b/database/migrations/2021_06_08_113437_create_user_ban_logs_table.php
new file mode 100644
index 00000000..05a5a847
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_user_ban_logs_table.php
@@ -0,0 +1,36 @@
+bigInteger('id', true);
+ $table->integer('uid')->default(0)->index('idx_uid');
+ $table->string('username')->default('')->index('idx_username');
+ $table->integer('operator')->default(0);
+ $table->string('reason')->nullable();
+ $table->timestamp('created_at')->nullable()->useCurrent();
+ $table->timestamp('updated_at')->nullable()->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('user_ban_logs');
+ }
+}
diff --git a/database/migrations/2021_06_08_113437_create_users_table.php b/database/migrations/2021_06_08_113437_create_users_table.php
new file mode 100644
index 00000000..75edd808
--- /dev/null
+++ b/database/migrations/2021_06_08_113437_create_users_table.php
@@ -0,0 +1,145 @@
+increments('id');
+ $table->string('username', 40)->default('')->unique('username');
+ $table->string('passhash', 32)->default('');
+ $table->binary('secret');
+ $table->string('email', 80)->default('');
+ $table->enum('status', ['pending', 'confirmed'])->default('pending');
+ $table->dateTime('added')->nullable();
+ $table->dateTime('last_login')->nullable();
+ $table->dateTime('last_access')->nullable()->index('last_access');
+ $table->dateTime('last_home')->nullable();
+ $table->dateTime('last_offer')->nullable();
+ $table->dateTime('forum_access')->nullable();
+ $table->dateTime('last_staffmsg')->nullable();
+ $table->dateTime('last_pm')->nullable();
+ $table->dateTime('last_comment')->nullable();
+ $table->dateTime('last_post')->nullable();
+ $table->unsignedInteger('last_browse')->default(0);
+ $table->unsignedInteger('last_music')->default(0);
+ $table->unsignedInteger('last_catchup')->default(0);
+ $table->binary('editsecret');
+ $table->enum('privacy', ['strong', 'normal', 'low'])->default('normal');
+ $table->unsignedTinyInteger('stylesheet')->default(1);
+ $table->unsignedTinyInteger('caticon')->default(1);
+ $table->enum('fontsize', ['small', 'medium', 'large'])->default('medium');
+ $table->text('info')->nullable();
+ $table->enum('acceptpms', ['yes', 'friends', 'no'])->default('yes');
+ $table->enum('commentpm', ['yes', 'no'])->default('yes');
+ $table->string('ip', 64)->default('')->index('ip');
+ $table->unsignedTinyInteger('class')->default(1)->index('class');
+ $table->tinyInteger('max_class_once')->default(1);
+ $table->string('avatar')->default('');
+ $table->unsignedBigInteger('uploaded')->default(0)->index('uploaded');
+ $table->unsignedBigInteger('downloaded')->default(0)->index('downloaded');
+ $table->unsignedBigInteger('seedtime')->default(0);
+ $table->unsignedBigInteger('leechtime')->default(0);
+ $table->string('title', 30)->default('');
+ $table->unsignedSmallInteger('country')->default(107)->index('country');
+ $table->string('notifs', 500)->nullable();
+ $table->text('modcomment')->nullable();
+ $table->enum('enabled', ['yes', 'no'])->default('yes')->index('enabled');
+ $table->enum('avatars', ['yes', 'no'])->default('yes');
+ $table->enum('donor', ['yes', 'no'])->default('no');
+ $table->decimal('donated')->default(0.00);
+ $table->decimal('donated_cny')->default(0.00);
+ $table->dateTime('donoruntil')->nullable();
+ $table->enum('warned', ['yes', 'no'])->default('no')->index('warned');
+ $table->dateTime('warneduntil')->nullable();
+ $table->enum('noad', ['yes', 'no'])->default('no');
+ $table->dateTime('noaduntil')->nullable();
+ $table->unsignedTinyInteger('torrentsperpage')->default(0);
+ $table->unsignedTinyInteger('topicsperpage')->default(0);
+ $table->unsignedTinyInteger('postsperpage')->default(0);
+ $table->enum('clicktopic', ['firstpage', 'lastpage'])->default('firstpage');
+ $table->enum('deletepms', ['yes', 'no'])->default('yes');
+ $table->enum('savepms', ['yes', 'no'])->default('no');
+ $table->enum('showhot', ['yes', 'no'])->default('yes');
+ $table->enum('showclassic', ['yes', 'no'])->default('yes');
+ $table->enum('support', ['yes', 'no'])->default('no');
+ $table->enum('picker', ['yes', 'no'])->default('no');
+ $table->string('stafffor')->default('');
+ $table->string('supportfor')->default('');
+ $table->string('pickfor')->default('');
+ $table->string('supportlang', 50)->default('');
+ $table->string('passkey', 32)->default('')->index('passkey');
+ $table->string('promotion_link', 32)->nullable();
+ $table->enum('uploadpos', ['yes', 'no'])->default('yes');
+ $table->enum('forumpost', ['yes', 'no'])->default('yes');
+ $table->enum('downloadpos', ['yes', 'no'])->default('yes');
+ $table->unsignedTinyInteger('clientselect')->default(0);
+ $table->enum('signatures', ['yes', 'no'])->default('yes');
+ $table->string('signature', 800)->default('');
+ $table->unsignedSmallInteger('lang')->default(6);
+ $table->smallInteger('cheat')->default(0)->index('cheat');
+ $table->unsignedInteger('download')->default(0);
+ $table->unsignedInteger('upload')->default(0);
+ $table->unsignedTinyInteger('isp')->default(0);
+ $table->unsignedSmallInteger('invites')->default(0);
+ $table->unsignedMediumInteger('invited_by')->default(0);
+ $table->enum('gender', ['Male', 'Female', 'N/A'])->default('N/A');
+ $table->enum('vip_added', ['yes', 'no'])->default('no');
+ $table->dateTime('vip_until')->nullable();
+ $table->decimal('seedbonus', 10, 1)->default(0.0);
+ $table->decimal('charity', 10, 1)->default(0.0);
+ $table->text('bonuscomment')->nullable();
+ $table->enum('parked', ['yes', 'no'])->default('no');
+ $table->enum('leechwarn', ['yes', 'no'])->default('no');
+ $table->dateTime('leechwarnuntil')->nullable();
+ $table->dateTime('lastwarned')->nullable();
+ $table->unsignedTinyInteger('timeswarned')->default(0);
+ $table->unsignedMediumInteger('warnedby')->default(0);
+ $table->unsignedSmallInteger('sbnum')->default(70);
+ $table->unsignedSmallInteger('sbrefresh')->default(120);
+ $table->enum('hidehb', ['yes', 'no'])->nullable()->default('no');
+ $table->enum('showimdb', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('showdescription', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('showcomment', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('showclienterror', ['yes', 'no'])->default('no');
+ $table->boolean('showdlnotice')->default(1);
+ $table->enum('tooltip', ['minorimdb', 'medianimdb', 'off'])->default('off');
+ $table->enum('shownfo', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('timetype', ['timeadded', 'timealive'])->nullable()->default('timealive');
+ $table->enum('appendsticky', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('appendnew', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('appendpromotion', ['highlight', 'word', 'icon', 'off'])->nullable()->default('icon');
+ $table->enum('appendpicked', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('dlicon', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('bmicon', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('showsmalldescr', ['yes', 'no'])->default('yes');
+ $table->enum('showcomnum', ['yes', 'no'])->nullable()->default('yes');
+ $table->enum('showlastcom', ['yes', 'no'])->nullable()->default('no');
+ $table->enum('showlastpost', ['yes', 'no'])->default('no');
+ $table->unsignedTinyInteger('pmnum')->default(10);
+ $table->unsignedSmallInteger('school')->default(35);
+ $table->enum('showfb', ['yes', 'no'])->default('yes');
+ $table->string('page')->nullable()->default('');
+ $table->index(['status', 'added'], 'status_added');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('users');
+ }
+}
diff --git a/database/seeders/AdminpanelTableSeeder.php b/database/seeders/AdminpanelTableSeeder.php
new file mode 100644
index 00000000..e4fe73c1
--- /dev/null
+++ b/database/seeders/AdminpanelTableSeeder.php
@@ -0,0 +1,96 @@
+delete();
+
+ \DB::table('adminpanel')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'name' => 'Add user',
+ 'url' => 'adduser.php',
+ 'info' => 'Create new user account',
+ ),
+ 1 =>
+ array (
+ 'id' => 3,
+ 'name' => 'Reset Users Password',
+ 'url' => 'reset.php',
+ 'info' => 'Rest lost Passwords',
+ ),
+ 2 =>
+ array (
+ 'id' => 4,
+ 'name' => 'Mass PM',
+ 'url' => 'staffmess.php',
+ 'info' => 'Send PM to all users',
+ ),
+ 3 =>
+ array (
+ 'id' => 6,
+ 'name' => 'Poll overview',
+ 'url' => 'polloverview.php',
+ 'info' => 'View poll votes',
+ ),
+ 4 =>
+ array (
+ 'id' => 7,
+ 'name' => 'Warned users',
+ 'url' => 'warned.php',
+ 'info' => 'See all warned users on tracker',
+ ),
+ 5 =>
+ array (
+ 'id' => 8,
+ 'name' => 'FreeLeech',
+ 'url' => 'freeleech.php',
+ 'info' => 'Set ALL Torrents At Special State.',
+ ),
+ 6 =>
+ array (
+ 'id' => 9,
+ 'name' => 'FAQ Management',
+ 'url' => 'faqmanage.php',
+ 'info' => 'Edit/Add/Delete FAQ Page',
+ ),
+ 7 =>
+ array (
+ 'id' => 10,
+ 'name' => 'Rules Management',
+ 'url' => 'modrules.php',
+ 'info' => 'Edit/Add/Delete RULES Page',
+ ),
+ 8 =>
+ array (
+ 'id' => 11,
+ 'name' => 'Category Manage',
+ 'url' => 'catmanage.php',
+ 'info' => 'Manage torrents categories at your site',
+ ),
+ 9 =>
+ array (
+ 'id' => 12,
+ 'name' => 'Custom Field Manage',
+ 'url' => 'fields.php',
+ 'info' => 'Manage custom fields',
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/AgentAllowedExceptionTableSeeder.php b/database/seeders/AgentAllowedExceptionTableSeeder.php
new file mode 100644
index 00000000..222a5277
--- /dev/null
+++ b/database/seeders/AgentAllowedExceptionTableSeeder.php
@@ -0,0 +1,34 @@
+delete();
+
+ \DB::table('agent_allowed_exception')->insert(array (
+ 0 =>
+ array (
+ 'family_id' => 16,
+ 'name' => 'uTorrent 1.80B (Build 6838)',
+ 'peer_id' => '-UT180B-',
+ 'agent' => 'uTorrent/180B(6838)',
+ 'comment' => 'buggy build that always seeding bad request',
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/AgentAllowedFamilyTableSeeder.php b/database/seeders/AgentAllowedFamilyTableSeeder.php
new file mode 100644
index 00000000..0fa9de46
--- /dev/null
+++ b/database/seeders/AgentAllowedFamilyTableSeeder.php
@@ -0,0 +1,458 @@
+delete();
+
+ \DB::table('agent_allowed_family')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'family' => 'Azureus 2.5.0.4',
+ 'start_name' => 'Azureus 2.5.0.4',
+ 'peer_id_pattern' => '/^-AZ2504-/',
+ 'peer_id_match_num' => 0,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-AZ2504-',
+ 'agent_pattern' => '/^Azureus 2.5.0.4/',
+ 'agent_match_num' => 0,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Azureus 2.5.0.4',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 1 =>
+ array (
+ 'id' => 2,
+ 'family' => 'uTorrent 1.6.1',
+ 'start_name' => 'uTorrent 1.6.1',
+ 'peer_id_pattern' => '/^-UT1610-/',
+ 'peer_id_match_num' => 0,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-UT1610-',
+ 'agent_pattern' => '/^uTorrent\\/1610/',
+ 'agent_match_num' => 0,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'uTorrent/1610',
+ 'exception' => 'no',
+ 'allowhttps' => 'no',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 2 =>
+ array (
+ 'id' => 3,
+ 'family' => 'Bittorrent 6.x',
+ 'start_name' => 'Bittorrent 6.0.1',
+ 'peer_id_pattern' => '/^M6-([0-9])-([0-9])--/',
+ 'peer_id_match_num' => 2,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => 'M6-0-1--',
+ 'agent_pattern' => '/^BitTorrent\\/6([0-9])([0-9])([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'BitTorrent/6010',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 3 =>
+ array (
+ 'id' => 4,
+ 'family' => 'Deluge 0.x',
+ 'start_name' => 'Deluge 0.5.8.9',
+ 'peer_id_pattern' => '/^-DE0([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-DE0589-',
+ 'agent_pattern' => '/^Deluge 0\\.([0-9])\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Deluge 0.5.8.9',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 4 =>
+ array (
+ 'id' => 5,
+ 'family' => 'Transmission1.x',
+ 'start_name' => 'Transmission 1.06 (build 5136)',
+ 'peer_id_pattern' => '/^-TR1([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-TR1060-',
+ 'agent_pattern' => '/^Transmission\\/1\\.([0-9])([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Transmission/1.06',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 5 =>
+ array (
+ 'id' => 6,
+ 'family' => 'RTorrent 0.x(with libtorrent 0.x)',
+ 'start_name' => 'rTorrent 0.8.0 (with libtorrent 0.12.0)',
+ 'peer_id_pattern' => '/^-lt([0-9A-E])([0-9A-E])([0-9A-E])([0-9A-E])-/',
+ 'peer_id_match_num' => 4,
+ 'peer_id_matchtype' => 'hex',
+ 'peer_id_start' => '-lt0C00-',
+ 'agent_pattern' => '/^rtorrent\\/0\\.([0-9])\\.([0-9])\\/0\\.([1-9][0-9]*)\\.(0|[1-9][0-9]*)/',
+ 'agent_match_num' => 4,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'rtorrent/0.8.0/0.12.0',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 6 =>
+ array (
+ 'id' => 7,
+ 'family' => 'Rufus 0.x',
+ 'start_name' => 'Rufus 0.6.9',
+ 'peer_id_pattern' => '',
+ 'peer_id_match_num' => 0,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '',
+ 'agent_pattern' => '/^Rufus\\/0\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Rufus/0.6.9',
+ 'exception' => 'no',
+ 'allowhttps' => 'no',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 7 =>
+ array (
+ 'id' => 8,
+ 'family' => 'Azureus 3.x',
+ 'start_name' => 'Azureus 3.0.5.0',
+ 'peer_id_pattern' => '/^-AZ3([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-AZ3050-',
+ 'agent_pattern' => '/^Azureus 3\\.([0-9])\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Azureus 3.0.5.0',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 8 =>
+ array (
+ 'id' => 9,
+ 'family' => 'uTorrent 1.7.x',
+ 'start_name' => 'uTorrent 1.7.5',
+ 'peer_id_pattern' => '/^-UT17([0-9])([0-9])-/',
+ 'peer_id_match_num' => 2,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-UT1750-',
+ 'agent_pattern' => '/^uTorrent\\/17([0-9])([0-9])/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'uTorrent/1750',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 9 =>
+ array (
+ 'id' => 10,
+ 'family' => 'BitRocket 0.x',
+ 'start_name' => 'BitRocket 0.3.3(32)',
+ 'peer_id_pattern' => '/^-BR0([0-9])([1-9][0-9]*)-/',
+ 'peer_id_match_num' => 2,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-BR0332-',
+ 'agent_pattern' => '/^BitRocket\\/0\\.([0-9])\\.([0-9])\\(([1-9][0-9]*)\\) libtorrent\\/0\\.([1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)/',
+ 'agent_match_num' => 6,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'BitRocket/0.3.3(32) libtorrent/0.13.0.0',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 10 =>
+ array (
+ 'id' => 11,
+ 'family' => 'MLDonkey 2.9.x',
+ 'start_name' => 'MLDonkey 2.9.2',
+ 'peer_id_pattern' => '/^-ML2\\.9\\.([0-9])-/',
+ 'peer_id_match_num' => 1,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-ML2.9.2-',
+ 'agent_pattern' => '/^MLDonkey\\/2\\.9\\.([0-9])/',
+ 'agent_match_num' => 1,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'MLDonkey/2.9.2',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 11 =>
+ array (
+ 'id' => 12,
+ 'family' => 'uTorrent 1.8.x',
+ 'start_name' => 'uTorrent 1.8.0',
+ 'peer_id_pattern' => '/^-UT18([0-9])([0-9])-/',
+ 'peer_id_match_num' => 2,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-UT1800-',
+ 'agent_pattern' => '/^uTorrent\\/18([0-9])([0-9])/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'uTorrent/1800',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 12 =>
+ array (
+ 'id' => 13,
+ 'family' => 'Azureus 4.x',
+ 'start_name' => 'Vuze 4.0.0.2',
+ 'peer_id_pattern' => '/^-AZ4([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-AZ4002-',
+ 'agent_pattern' => '/^Azureus 4\\.([0-9])\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Azureus 4.0.0.2',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 13 =>
+ array (
+ 'id' => 14,
+ 'family' => 'SymTorrent',
+ 'start_name' => '',
+ 'peer_id_pattern' => '',
+ 'peer_id_match_num' => 0,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '',
+ 'agent_pattern' => '/^SymTorrent/',
+ 'agent_match_num' => 0,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'SymTorrent',
+ 'exception' => 'no',
+ 'allowhttps' => 'no',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 14 =>
+ array (
+ 'id' => 15,
+ 'family' => 'Deluge 1.x',
+ 'start_name' => 'Deluge 1.1.6',
+ 'peer_id_pattern' => '/^-DE1([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-DE1160-',
+ 'agent_pattern' => '/^Deluge 1\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Deluge 1.1.6',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 15 =>
+ array (
+ 'id' => 16,
+ 'family' => 'uTorrent 1.8xB',
+ 'start_name' => 'uTorrent 1.80 Beta (build 9137)',
+ 'peer_id_pattern' => '/^-UT18([0-9])B-/',
+ 'peer_id_match_num' => 1,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-UT180B-',
+ 'agent_pattern' => '/^uTorrent\\/18([0-9])B\\(([1-9][0-9]*)\\)/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'uTorrent/180B(9137)',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 16 =>
+ array (
+ 'id' => 17,
+ 'family' => 'uTorrent 2.x.x',
+ 'start_name' => 'uTorrent 2.0(build 17624)',
+ 'peer_id_pattern' => '/^-UT2([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-UT2000-',
+ 'agent_pattern' => '/^uTorrent\\/2([0-9])([0-9])([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'uTorrent/2000',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 17 =>
+ array (
+ 'id' => 18,
+ 'family' => 'Transmission2.x',
+ 'start_name' => 'Transmission 2.0',
+ 'peer_id_pattern' => '/^-TR2([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-TR2000-',
+ 'agent_pattern' => '/^Transmission\\/2\\.([0-9])([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Transmission/2.00',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 18 =>
+ array (
+ 'id' => 19,
+ 'family' => 'uTorrent 3.x',
+ 'start_name' => 'uTorrent/3000',
+ 'peer_id_pattern' => '/^-UT3([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-UT3000-',
+ 'agent_pattern' => '/^uTorrent\\/3([0-9])([0-9])([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'uTorrent/3000',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 19 =>
+ array (
+ 'id' => 20,
+ 'family' => 'uTorrent 3.x',
+ 'start_name' => 'uTorrent',
+ 'peer_id_pattern' => '',
+ 'peer_id_match_num' => 0,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-UT355W-',
+ 'agent_pattern' => '/^uTorrent/',
+ 'agent_match_num' => 0,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'uTorrent',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 20 =>
+ array (
+ 'id' => 21,
+ 'family' => 'Transmission3.x',
+ 'start_name' => 'Transmission 3.0',
+ 'peer_id_pattern' => '/^-TR3([0-9])([0-9])([0-9])-/',
+ 'peer_id_match_num' => 3,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-TR3000-',
+ 'agent_pattern' => '/^Transmission\\/3\\.([0-9])([0-9])/',
+ 'agent_match_num' => 3,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Transmission/3.00',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 21 =>
+ array (
+ 'id' => 22,
+ 'family' => 'Deluge 2.x',
+ 'start_name' => 'Deluge 2.0.0',
+ 'peer_id_pattern' => '/^-DE2([0-9])([0-9])/',
+ 'peer_id_match_num' => 2,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-DE200',
+ 'agent_pattern' => '/^Deluge\\/2\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Deluge/2.0.0',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 22 =>
+ array (
+ 'id' => 23,
+ 'family' => 'qBittorrent 4.x',
+ 'start_name' => 'qBittorrent 4.0.0',
+ 'peer_id_pattern' => '/^-qB4([0-9])([0-9])/',
+ 'peer_id_match_num' => 2,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-qB400',
+ 'agent_pattern' => '/^qBittorrent\\/4\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'qBittorrent/4.0.0',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ 23 =>
+ array (
+ 'id' => 24,
+ 'family' => 'Deluge 1.x',
+ 'start_name' => 'Deluge 1.0.0',
+ 'peer_id_pattern' => '/^-DE1([0-9])/',
+ 'peer_id_match_num' => 1,
+ 'peer_id_matchtype' => 'dec',
+ 'peer_id_start' => '-DE10',
+ 'agent_pattern' => '/^Deluge 1\\.([0-9])\\.([0-9])/',
+ 'agent_match_num' => 2,
+ 'agent_matchtype' => 'dec',
+ 'agent_start' => 'Deluge 1.0.0',
+ 'exception' => 'no',
+ 'allowhttps' => 'yes',
+ 'comment' => '',
+ 'hits' => 0,
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/AllowedemailsTableSeeder.php b/database/seeders/AllowedemailsTableSeeder.php
new file mode 100644
index 00000000..251679e0
--- /dev/null
+++ b/database/seeders/AllowedemailsTableSeeder.php
@@ -0,0 +1,31 @@
+delete();
+
+ \DB::table('allowedemails')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'value' => '@st.zju.edu.cn @gstu.zju.edu.cn @fa.zju.edu.cn @zuaa.zju.edu.cn',
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/AudiocodecsTableSeeder.php b/database/seeders/AudiocodecsTableSeeder.php
new file mode 100644
index 00000000..d1253502
--- /dev/null
+++ b/database/seeders/AudiocodecsTableSeeder.php
@@ -0,0 +1,75 @@
+delete();
+
+ \DB::table('audiocodecs')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'name' => 'FLAC',
+ 'image' => '',
+ 'sort_index' => 0,
+ ),
+ 1 =>
+ array (
+ 'id' => 2,
+ 'name' => 'APE',
+ 'image' => '',
+ 'sort_index' => 0,
+ ),
+ 2 =>
+ array (
+ 'id' => 3,
+ 'name' => 'DTS',
+ 'image' => '',
+ 'sort_index' => 0,
+ ),
+ 3 =>
+ array (
+ 'id' => 4,
+ 'name' => 'MP3',
+ 'image' => '',
+ 'sort_index' => 0,
+ ),
+ 4 =>
+ array (
+ 'id' => 5,
+ 'name' => 'OGG',
+ 'image' => '',
+ 'sort_index' => 0,
+ ),
+ 5 =>
+ array (
+ 'id' => 6,
+ 'name' => 'AAC',
+ 'image' => '',
+ 'sort_index' => 0,
+ ),
+ 6 =>
+ array (
+ 'id' => 7,
+ 'name' => 'Other',
+ 'image' => '',
+ 'sort_index' => 0,
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/BannedemailsTableSeeder.php b/database/seeders/BannedemailsTableSeeder.php
new file mode 100644
index 00000000..8269ed3c
--- /dev/null
+++ b/database/seeders/BannedemailsTableSeeder.php
@@ -0,0 +1,31 @@
+delete();
+
+ \DB::table('bannedemails')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'value' => '@test.com',
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/CategoriesTableSeeder.php b/database/seeders/CategoriesTableSeeder.php
new file mode 100644
index 00000000..f9fcad3c
--- /dev/null
+++ b/database/seeders/CategoriesTableSeeder.php
@@ -0,0 +1,116 @@
+delete();
+
+ \DB::table('categories')->insert(array (
+ 0 =>
+ array (
+ 'id' => 401,
+ 'mode' => 4,
+ 'class_name' => 'c_movies',
+ 'name' => 'Movies',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 0,
+ 'icon_id' => 1,
+ ),
+ 1 =>
+ array (
+ 'id' => 402,
+ 'mode' => 4,
+ 'class_name' => 'c_tvseries',
+ 'name' => 'TV Series',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 3,
+ 'icon_id' => 1,
+ ),
+ 2 =>
+ array (
+ 'id' => 403,
+ 'mode' => 4,
+ 'class_name' => 'c_tvshows',
+ 'name' => 'TV Shows',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 4,
+ 'icon_id' => 1,
+ ),
+ 3 =>
+ array (
+ 'id' => 404,
+ 'mode' => 4,
+ 'class_name' => 'c_doc',
+ 'name' => 'Documentaries',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 1,
+ 'icon_id' => 1,
+ ),
+ 4 =>
+ array (
+ 'id' => 405,
+ 'mode' => 4,
+ 'class_name' => 'c_anime',
+ 'name' => 'Animations',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 2,
+ 'icon_id' => 1,
+ ),
+ 5 =>
+ array (
+ 'id' => 406,
+ 'mode' => 4,
+ 'class_name' => 'c_mv',
+ 'name' => 'Music Videos',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 5,
+ 'icon_id' => 1,
+ ),
+ 6 =>
+ array (
+ 'id' => 407,
+ 'mode' => 4,
+ 'class_name' => 'c_sports',
+ 'name' => 'Sports',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 6,
+ 'icon_id' => 1,
+ ),
+ 7 =>
+ array (
+ 'id' => 408,
+ 'mode' => 4,
+ 'class_name' => 'c_hqaudio',
+ 'name' => 'HQ Audio',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 8,
+ 'icon_id' => 1,
+ ),
+ 8 =>
+ array (
+ 'id' => 409,
+ 'mode' => 4,
+ 'class_name' => 'c_misc',
+ 'name' => 'Misc',
+ 'image' => 'catsprites.png',
+ 'sort_index' => 7,
+ 'icon_id' => 1,
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/CaticonsTableSeeder.php b/database/seeders/CaticonsTableSeeder.php
new file mode 100644
index 00000000..ddfe25c4
--- /dev/null
+++ b/database/seeders/CaticonsTableSeeder.php
@@ -0,0 +1,37 @@
+delete();
+
+ \DB::table('caticons')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'name' => 'SceneTorrents mod',
+ 'folder' => 'scenetorrents/',
+ 'cssfile' => 'pic/category/chd/scenetorrents/catsprites.css',
+ 'multilang' => 'yes',
+ 'secondicon' => 'no',
+ 'designer' => 'NexusPHP',
+ 'comment' => 'Modified from SceneTorrents',
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/CodecsTableSeeder.php b/database/seeders/CodecsTableSeeder.php
new file mode 100644
index 00000000..3cb48797
--- /dev/null
+++ b/database/seeders/CodecsTableSeeder.php
@@ -0,0 +1,56 @@
+delete();
+
+ \DB::table('codecs')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'name' => 'H.264',
+ 'sort_index' => 0,
+ ),
+ 1 =>
+ array (
+ 'id' => 2,
+ 'name' => 'VC-1',
+ 'sort_index' => 0,
+ ),
+ 2 =>
+ array (
+ 'id' => 3,
+ 'name' => 'Xvid',
+ 'sort_index' => 0,
+ ),
+ 3 =>
+ array (
+ 'id' => 4,
+ 'name' => 'MPEG-2',
+ 'sort_index' => 0,
+ ),
+ 4 =>
+ array (
+ 'id' => 5,
+ 'name' => 'Other',
+ 'sort_index' => 0,
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/CountriesTableSeeder.php b/database/seeders/CountriesTableSeeder.php
new file mode 100644
index 00000000..76b17e9f
--- /dev/null
+++ b/database/seeders/CountriesTableSeeder.php
@@ -0,0 +1,626 @@
+delete();
+
+ \DB::table('countries')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'name' => 'Sweden',
+ 'flagpic' => 'sweden.gif',
+ ),
+ 1 =>
+ array (
+ 'id' => 2,
+ 'name' => 'United States of America',
+ 'flagpic' => 'usa.gif',
+ ),
+ 2 =>
+ array (
+ 'id' => 3,
+ 'name' => 'Russia',
+ 'flagpic' => 'russia.gif',
+ ),
+ 3 =>
+ array (
+ 'id' => 4,
+ 'name' => 'Finland',
+ 'flagpic' => 'finland.gif',
+ ),
+ 4 =>
+ array (
+ 'id' => 5,
+ 'name' => 'Canada',
+ 'flagpic' => 'canada.gif',
+ ),
+ 5 =>
+ array (
+ 'id' => 6,
+ 'name' => 'France',
+ 'flagpic' => 'france.gif',
+ ),
+ 6 =>
+ array (
+ 'id' => 7,
+ 'name' => 'Germany',
+ 'flagpic' => 'germany.gif',
+ ),
+ 7 =>
+ array (
+ 'id' => 8,
+ 'name' => '中国',
+ 'flagpic' => 'china.gif',
+ ),
+ 8 =>
+ array (
+ 'id' => 9,
+ 'name' => 'Italy',
+ 'flagpic' => 'italy.gif',
+ ),
+ 9 =>
+ array (
+ 'id' => 10,
+ 'name' => 'Denmark',
+ 'flagpic' => 'denmark.gif',
+ ),
+ 10 =>
+ array (
+ 'id' => 11,
+ 'name' => 'Norway',
+ 'flagpic' => 'norway.gif',
+ ),
+ 11 =>
+ array (
+ 'id' => 12,
+ 'name' => 'United Kingdom',
+ 'flagpic' => 'uk.gif',
+ ),
+ 12 =>
+ array (
+ 'id' => 13,
+ 'name' => 'Ireland',
+ 'flagpic' => 'ireland.gif',
+ ),
+ 13 =>
+ array (
+ 'id' => 14,
+ 'name' => 'Poland',
+ 'flagpic' => 'poland.gif',
+ ),
+ 14 =>
+ array (
+ 'id' => 15,
+ 'name' => 'Netherlands',
+ 'flagpic' => 'netherlands.gif',
+ ),
+ 15 =>
+ array (
+ 'id' => 16,
+ 'name' => 'Belgium',
+ 'flagpic' => 'belgium.gif',
+ ),
+ 16 =>
+ array (
+ 'id' => 17,
+ 'name' => 'Japan',
+ 'flagpic' => 'japan.gif',
+ ),
+ 17 =>
+ array (
+ 'id' => 18,
+ 'name' => 'Brazil',
+ 'flagpic' => 'brazil.gif',
+ ),
+ 18 =>
+ array (
+ 'id' => 19,
+ 'name' => 'Argentina',
+ 'flagpic' => 'argentina.gif',
+ ),
+ 19 =>
+ array (
+ 'id' => 20,
+ 'name' => 'Australia',
+ 'flagpic' => 'australia.gif',
+ ),
+ 20 =>
+ array (
+ 'id' => 21,
+ 'name' => 'New Zealand',
+ 'flagpic' => 'newzealand.gif',
+ ),
+ 21 =>
+ array (
+ 'id' => 23,
+ 'name' => 'Spain',
+ 'flagpic' => 'spain.gif',
+ ),
+ 22 =>
+ array (
+ 'id' => 24,
+ 'name' => 'Portugal',
+ 'flagpic' => 'portugal.gif',
+ ),
+ 23 =>
+ array (
+ 'id' => 25,
+ 'name' => 'Mexico',
+ 'flagpic' => 'mexico.gif',
+ ),
+ 24 =>
+ array (
+ 'id' => 26,
+ 'name' => 'Singapore',
+ 'flagpic' => 'singapore.gif',
+ ),
+ 25 =>
+ array (
+ 'id' => 70,
+ 'name' => 'India',
+ 'flagpic' => 'india.gif',
+ ),
+ 26 =>
+ array (
+ 'id' => 65,
+ 'name' => 'Albania',
+ 'flagpic' => 'albania.gif',
+ ),
+ 27 =>
+ array (
+ 'id' => 29,
+ 'name' => 'South Africa',
+ 'flagpic' => 'southafrica.gif',
+ ),
+ 28 =>
+ array (
+ 'id' => 30,
+ 'name' => 'South Korea',
+ 'flagpic' => 'southkorea.gif',
+ ),
+ 29 =>
+ array (
+ 'id' => 31,
+ 'name' => 'Jamaica',
+ 'flagpic' => 'jamaica.gif',
+ ),
+ 30 =>
+ array (
+ 'id' => 32,
+ 'name' => 'Luxembourg',
+ 'flagpic' => 'luxembourg.gif',
+ ),
+ 31 =>
+ array (
+ 'id' => 34,
+ 'name' => 'Belize',
+ 'flagpic' => 'belize.gif',
+ ),
+ 32 =>
+ array (
+ 'id' => 35,
+ 'name' => 'Algeria',
+ 'flagpic' => 'algeria.gif',
+ ),
+ 33 =>
+ array (
+ 'id' => 36,
+ 'name' => 'Angola',
+ 'flagpic' => 'angola.gif',
+ ),
+ 34 =>
+ array (
+ 'id' => 37,
+ 'name' => 'Austria',
+ 'flagpic' => 'austria.gif',
+ ),
+ 35 =>
+ array (
+ 'id' => 38,
+ 'name' => 'Yugoslavia',
+ 'flagpic' => 'yugoslavia.gif',
+ ),
+ 36 =>
+ array (
+ 'id' => 39,
+ 'name' => 'Western Samoa',
+ 'flagpic' => 'westernsamoa.gif',
+ ),
+ 37 =>
+ array (
+ 'id' => 40,
+ 'name' => 'Malaysia',
+ 'flagpic' => 'malaysia.gif',
+ ),
+ 38 =>
+ array (
+ 'id' => 41,
+ 'name' => 'Dominican Republic',
+ 'flagpic' => 'dominicanrep.gif',
+ ),
+ 39 =>
+ array (
+ 'id' => 42,
+ 'name' => 'Greece',
+ 'flagpic' => 'greece.gif',
+ ),
+ 40 =>
+ array (
+ 'id' => 43,
+ 'name' => 'Guatemala',
+ 'flagpic' => 'guatemala.gif',
+ ),
+ 41 =>
+ array (
+ 'id' => 44,
+ 'name' => 'Israel',
+ 'flagpic' => 'israel.gif',
+ ),
+ 42 =>
+ array (
+ 'id' => 45,
+ 'name' => 'Pakistan',
+ 'flagpic' => 'pakistan.gif',
+ ),
+ 43 =>
+ array (
+ 'id' => 46,
+ 'name' => 'Czech Republic',
+ 'flagpic' => 'czechrep.gif',
+ ),
+ 44 =>
+ array (
+ 'id' => 47,
+ 'name' => 'Serbia',
+ 'flagpic' => 'serbia.gif',
+ ),
+ 45 =>
+ array (
+ 'id' => 48,
+ 'name' => 'Seychelles',
+ 'flagpic' => 'seychelles.gif',
+ ),
+ 46 =>
+ array (
+ 'id' => 50,
+ 'name' => 'Puerto Rico',
+ 'flagpic' => 'puertorico.gif',
+ ),
+ 47 =>
+ array (
+ 'id' => 51,
+ 'name' => 'Chile',
+ 'flagpic' => 'chile.gif',
+ ),
+ 48 =>
+ array (
+ 'id' => 52,
+ 'name' => 'Cuba',
+ 'flagpic' => 'cuba.gif',
+ ),
+ 49 =>
+ array (
+ 'id' => 53,
+ 'name' => 'Congo',
+ 'flagpic' => 'congo.gif',
+ ),
+ 50 =>
+ array (
+ 'id' => 54,
+ 'name' => 'Afghanistan',
+ 'flagpic' => 'afghanistan.gif',
+ ),
+ 51 =>
+ array (
+ 'id' => 55,
+ 'name' => 'Turkey',
+ 'flagpic' => 'turkey.gif',
+ ),
+ 52 =>
+ array (
+ 'id' => 56,
+ 'name' => 'Uzbekistan',
+ 'flagpic' => 'uzbekistan.gif',
+ ),
+ 53 =>
+ array (
+ 'id' => 57,
+ 'name' => 'Switzerland',
+ 'flagpic' => 'switzerland.gif',
+ ),
+ 54 =>
+ array (
+ 'id' => 58,
+ 'name' => 'Kiribati',
+ 'flagpic' => 'kiribati.gif',
+ ),
+ 55 =>
+ array (
+ 'id' => 59,
+ 'name' => 'Philippines',
+ 'flagpic' => 'philippines.gif',
+ ),
+ 56 =>
+ array (
+ 'id' => 60,
+ 'name' => 'Burkina Faso',
+ 'flagpic' => 'burkinafaso.gif',
+ ),
+ 57 =>
+ array (
+ 'id' => 61,
+ 'name' => 'Nigeria',
+ 'flagpic' => 'nigeria.gif',
+ ),
+ 58 =>
+ array (
+ 'id' => 62,
+ 'name' => 'Iceland',
+ 'flagpic' => 'iceland.gif',
+ ),
+ 59 =>
+ array (
+ 'id' => 63,
+ 'name' => 'Nauru',
+ 'flagpic' => 'nauru.gif',
+ ),
+ 60 =>
+ array (
+ 'id' => 64,
+ 'name' => 'Slovenia',
+ 'flagpic' => 'slovenia.gif',
+ ),
+ 61 =>
+ array (
+ 'id' => 66,
+ 'name' => 'Turkmenistan',
+ 'flagpic' => 'turkmenistan.gif',
+ ),
+ 62 =>
+ array (
+ 'id' => 67,
+ 'name' => 'Bosnia Herzegovina',
+ 'flagpic' => 'bosniaherzegovina.gif',
+ ),
+ 63 =>
+ array (
+ 'id' => 68,
+ 'name' => 'Andorra',
+ 'flagpic' => 'andorra.gif',
+ ),
+ 64 =>
+ array (
+ 'id' => 69,
+ 'name' => 'Lithuania',
+ 'flagpic' => 'lithuania.gif',
+ ),
+ 65 =>
+ array (
+ 'id' => 71,
+ 'name' => 'Netherlands Antilles',
+ 'flagpic' => 'nethantilles.gif',
+ ),
+ 66 =>
+ array (
+ 'id' => 72,
+ 'name' => 'Ukraine',
+ 'flagpic' => 'ukraine.gif',
+ ),
+ 67 =>
+ array (
+ 'id' => 73,
+ 'name' => 'Venezuela',
+ 'flagpic' => 'venezuela.gif',
+ ),
+ 68 =>
+ array (
+ 'id' => 74,
+ 'name' => 'Hungary',
+ 'flagpic' => 'hungary.gif',
+ ),
+ 69 =>
+ array (
+ 'id' => 75,
+ 'name' => 'Romania',
+ 'flagpic' => 'romania.gif',
+ ),
+ 70 =>
+ array (
+ 'id' => 76,
+ 'name' => 'Vanuatu',
+ 'flagpic' => 'vanuatu.gif',
+ ),
+ 71 =>
+ array (
+ 'id' => 77,
+ 'name' => 'Vietnam',
+ 'flagpic' => 'vietnam.gif',
+ ),
+ 72 =>
+ array (
+ 'id' => 78,
+ 'name' => 'Trinidad & Tobago',
+ 'flagpic' => 'trinidadandtobago.gif',
+ ),
+ 73 =>
+ array (
+ 'id' => 79,
+ 'name' => 'Honduras',
+ 'flagpic' => 'honduras.gif',
+ ),
+ 74 =>
+ array (
+ 'id' => 80,
+ 'name' => 'Kyrgyzstan',
+ 'flagpic' => 'kyrgyzstan.gif',
+ ),
+ 75 =>
+ array (
+ 'id' => 81,
+ 'name' => 'Ecuador',
+ 'flagpic' => 'ecuador.gif',
+ ),
+ 76 =>
+ array (
+ 'id' => 82,
+ 'name' => 'Bahamas',
+ 'flagpic' => 'bahamas.gif',
+ ),
+ 77 =>
+ array (
+ 'id' => 83,
+ 'name' => 'Peru',
+ 'flagpic' => 'peru.gif',
+ ),
+ 78 =>
+ array (
+ 'id' => 84,
+ 'name' => 'Cambodia',
+ 'flagpic' => 'cambodia.gif',
+ ),
+ 79 =>
+ array (
+ 'id' => 85,
+ 'name' => 'Barbados',
+ 'flagpic' => 'barbados.gif',
+ ),
+ 80 =>
+ array (
+ 'id' => 86,
+ 'name' => 'Bangladesh',
+ 'flagpic' => 'bangladesh.gif',
+ ),
+ 81 =>
+ array (
+ 'id' => 87,
+ 'name' => 'Laos',
+ 'flagpic' => 'laos.gif',
+ ),
+ 82 =>
+ array (
+ 'id' => 88,
+ 'name' => 'Uruguay',
+ 'flagpic' => 'uruguay.gif',
+ ),
+ 83 =>
+ array (
+ 'id' => 89,
+ 'name' => 'Antigua Barbuda',
+ 'flagpic' => 'antiguabarbuda.gif',
+ ),
+ 84 =>
+ array (
+ 'id' => 90,
+ 'name' => 'Paraguay',
+ 'flagpic' => 'paraguay.gif',
+ ),
+ 85 =>
+ array (
+ 'id' => 93,
+ 'name' => 'Thailand',
+ 'flagpic' => 'thailand.gif',
+ ),
+ 86 =>
+ array (
+ 'id' => 92,
+ 'name' => 'Union of Soviet Socialist Republics',
+ 'flagpic' => 'ussr.gif',
+ ),
+ 87 =>
+ array (
+ 'id' => 94,
+ 'name' => 'Senegal',
+ 'flagpic' => 'senegal.gif',
+ ),
+ 88 =>
+ array (
+ 'id' => 95,
+ 'name' => 'Togo',
+ 'flagpic' => 'togo.gif',
+ ),
+ 89 =>
+ array (
+ 'id' => 96,
+ 'name' => 'North Korea',
+ 'flagpic' => 'northkorea.gif',
+ ),
+ 90 =>
+ array (
+ 'id' => 97,
+ 'name' => 'Croatia',
+ 'flagpic' => 'croatia.gif',
+ ),
+ 91 =>
+ array (
+ 'id' => 98,
+ 'name' => 'Estonia',
+ 'flagpic' => 'estonia.gif',
+ ),
+ 92 =>
+ array (
+ 'id' => 99,
+ 'name' => 'Colombia',
+ 'flagpic' => 'colombia.gif',
+ ),
+ 93 =>
+ array (
+ 'id' => 100,
+ 'name' => 'Lebanon',
+ 'flagpic' => 'lebanon.gif',
+ ),
+ 94 =>
+ array (
+ 'id' => 101,
+ 'name' => 'Latvia',
+ 'flagpic' => 'latvia.gif',
+ ),
+ 95 =>
+ array (
+ 'id' => 102,
+ 'name' => 'Costa Rica',
+ 'flagpic' => 'costarica.gif',
+ ),
+ 96 =>
+ array (
+ 'id' => 103,
+ 'name' => 'Egypt',
+ 'flagpic' => 'egypt.gif',
+ ),
+ 97 =>
+ array (
+ 'id' => 104,
+ 'name' => 'Bulgaria',
+ 'flagpic' => 'bulgaria.gif',
+ ),
+ 98 =>
+ array (
+ 'id' => 105,
+ 'name' => 'Isla de Muerte',
+ 'flagpic' => 'jollyroger.gif',
+ ),
+ 99 =>
+ array (
+ 'id' => 107,
+ 'name' => 'Pirates',
+ 'flagpic' => 'jollyroger.gif',
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index 57b73b54..e96728c1 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -13,6 +13,33 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
- // \App\Models\User::factory(10)->create();
+ $this->call(AdminpanelTableSeeder::class);
+ $this->call(AgentAllowedExceptionTableSeeder::class);
+ $this->call(AgentAllowedFamilyTableSeeder::class);
+ $this->call(AllowedemailsTableSeeder::class);
+ $this->call(AudiocodecsTableSeeder::class);
+ $this->call(BannedemailsTableSeeder::class);
+ $this->call(CategoriesTableSeeder::class);
+ $this->call(CaticonsTableSeeder::class);
+ $this->call(CodecsTableSeeder::class);
+ $this->call(CountriesTableSeeder::class);
+ $this->call(DownloadspeedTableSeeder::class);
+ $this->call(FaqTableSeeder::class);
+ $this->call(IspTableSeeder::class);
+ $this->call(LanguageTableSeeder::class);
+ $this->call(MediaTableSeeder::class);
+ $this->call(ModpanelTableSeeder::class);
+ $this->call(ProcessingsTableSeeder::class);
+ $this->call(RulesTableSeeder::class);
+ $this->call(SchoolsTableSeeder::class);
+ $this->call(SearchboxTableSeeder::class);
+ $this->call(SecondiconsTableSeeder::class);
+ $this->call(SourcesTableSeeder::class);
+ $this->call(StandardsTableSeeder::class);
+ $this->call(StylesheetsTableSeeder::class);
+ $this->call(SysoppanelTableSeeder::class);
+ $this->call(TeamsTableSeeder::class);
+ $this->call(TorrentsStateTableSeeder::class);
+ $this->call(UploadspeedTableSeeder::class);
}
}
diff --git a/database/seeders/DownloadspeedTableSeeder.php b/database/seeders/DownloadspeedTableSeeder.php
new file mode 100644
index 00000000..a616f86c
--- /dev/null
+++ b/database/seeders/DownloadspeedTableSeeder.php
@@ -0,0 +1,116 @@
+delete();
+
+ \DB::table('downloadspeed')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'name' => '64kbps',
+ ),
+ 1 =>
+ array (
+ 'id' => 2,
+ 'name' => '128kbps',
+ ),
+ 2 =>
+ array (
+ 'id' => 3,
+ 'name' => '256kbps',
+ ),
+ 3 =>
+ array (
+ 'id' => 4,
+ 'name' => '512kbps',
+ ),
+ 4 =>
+ array (
+ 'id' => 5,
+ 'name' => '768kbps',
+ ),
+ 5 =>
+ array (
+ 'id' => 6,
+ 'name' => '1Mbps',
+ ),
+ 6 =>
+ array (
+ 'id' => 7,
+ 'name' => '1.5Mbps',
+ ),
+ 7 =>
+ array (
+ 'id' => 8,
+ 'name' => '2Mbps',
+ ),
+ 8 =>
+ array (
+ 'id' => 9,
+ 'name' => '3Mbps',
+ ),
+ 9 =>
+ array (
+ 'id' => 10,
+ 'name' => '4Mbps',
+ ),
+ 10 =>
+ array (
+ 'id' => 11,
+ 'name' => '5Mbps',
+ ),
+ 11 =>
+ array (
+ 'id' => 12,
+ 'name' => '6Mbps',
+ ),
+ 12 =>
+ array (
+ 'id' => 13,
+ 'name' => '7Mbps',
+ ),
+ 13 =>
+ array (
+ 'id' => 14,
+ 'name' => '8Mbps',
+ ),
+ 14 =>
+ array (
+ 'id' => 15,
+ 'name' => '9Mbps',
+ ),
+ 15 =>
+ array (
+ 'id' => 16,
+ 'name' => '10Mbps',
+ ),
+ 16 =>
+ array (
+ 'id' => 17,
+ 'name' => '48Mbps',
+ ),
+ 17 =>
+ array (
+ 'id' => 18,
+ 'name' => '100Mbit',
+ ),
+ ));
+
+
+ }
+}
\ No newline at end of file
diff --git a/database/seeders/FaqTableSeeder.php b/database/seeders/FaqTableSeeder.php
new file mode 100644
index 00000000..c1c311b0
--- /dev/null
+++ b/database/seeders/FaqTableSeeder.php
@@ -0,0 +1,3785 @@
+delete();
+
+ \DB::table('faq')->insert(array (
+ 0 =>
+ array (
+ 'id' => 1,
+ 'link_id' => 1,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '站点信息',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 1,
+ ),
+ 1 =>
+ array (
+ 'id' => 2,
+ 'link_id' => 2,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '用户信息',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 2,
+ ),
+ 2 =>
+ array (
+ 'id' => 3,
+ 'link_id' => 3,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '数据统计',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 3,
+ ),
+ 3 =>
+ array (
+ 'id' => 4,
+ 'link_id' => 4,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '发布',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 4,
+ ),
+ 4 =>
+ array (
+ 'id' => 5,
+ 'link_id' => 5,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '下载',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 5,
+ ),
+ 5 =>
+ array (
+ 'id' => 6,
+ 'link_id' => 6,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '我该怎样提升下载速度?',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 6,
+ ),
+ 6 =>
+ array (
+ 'id' => 7,
+ 'link_id' => 7,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '我的网络提供商(ISP)使用了透明代理。我应该怎么做?',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 7,
+ ),
+ 7 =>
+ array (
+ 'id' => 8,
+ 'link_id' => 8,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '为什么我连不上?难道我被网站屏蔽了?',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 8,
+ ),
+ 8 =>
+ array (
+ 'id' => 9,
+ 'link_id' => 9,
+ 'lang_id' => 25,
+ 'type' => 'categ',
+ 'question' => '如果从这里找不到我的问题的解答,我该怎么办?',
+ 'answer' => '',
+ 'flag' => 1,
+ 'categ' => 0,
+ 'order' => 9,
+ ),
+ 9 =>
+ array (
+ 'id' => 10,
+ 'link_id' => 10,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '到底什么是BT(Bittorrent)?我要如何才能弄到这类程序?',
+ 'answer' => '参看Brian的BitTorrent FAQ及指导。',
+ 'flag' => 1,
+ 'categ' => 1,
+ 'order' => 1,
+ ),
+ 10 =>
+ array (
+ 'id' => 11,
+ 'link_id' => 11,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '我们捐出来的钱上哪儿去了?',
+ 'answer' => '所有捐助的钱用于维护服务器的费用。',
+ 'flag' => 1,
+ 'categ' => 1,
+ 'order' => 2,
+ ),
+ 11 =>
+ array (
+ 'id' => 12,
+ 'link_id' => 12,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '我从哪里可以搞到源代码的拷贝?',
+ 'answer' => '这个Tracker使用的是NexusPHP的代码。代码获取事宜,请看这里。
+NexusPHP的代码是根据TBSource的源码改写的。TBDev网站,Tracker源代码以及社区论坛都在这里:TBDev.net。',
+ 'flag' => 1,
+ 'categ' => 1,
+ 'order' => 3,
+ ),
+ 12 =>
+ array (
+ 'id' => 13,
+ 'link_id' => 13,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '我注册了一个账号但是却没有收到验证邮件!',
+ 'answer' => '这很有可能是Tracker所在的服务器网络出现了问题。你可以填写这个表格让服务器重发验证邮件。
+通常没有得到确认的注册帐户会在24小时后被删除,所以你可以在第二天重试。需要注意的是,如果你第一次没有收到确认信,第二次有很大的可能仍然无法收到确认信,所以换一个E-mail地址是一个不错的主意。',
+ 'flag' => 1,
+ 'categ' => 2,
+ 'order' => 1,
+ ),
+ 13 =>
+ array (
+ 'id' => 14,
+ 'link_id' => 14,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '我忘记了我的用户名/密码了,能帮我找回来么?',
+ 'answer' => '请填写这个表单,我们将把登录详情发还给你。',
+ 'flag' => 1,
+ 'categ' => 2,
+ 'order' => 2,
+ ),
+ 14 =>
+ array (
+ 'id' => 15,
+ 'link_id' => 15,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '我可以给我的账号改个名字么?',
+ 'answer' => '我们并不支持给账号改名。',
+ 'flag' => 1,
+ 'categ' => 2,
+ 'order' => 3,
+ ),
+ 15 =>
+ array (
+ 'id' => 16,
+ 'link_id' => 16,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '你可以删除一个(已确认的)账号么?',
+ 'answer' => '我们一般不提供该类服务,所以不要请求删除任何一个被你邀请的帐号。',
+ 'flag' => 1,
+ 'categ' => 2,
+ 'order' => 4,
+ ),
+ 16 =>
+ array (
+ 'id' => 17,
+ 'link_id' => 17,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '那么,什么是我的分享率(Ratio)?',
+ 'answer' => '就在页面功能分区的下面。
+
+
+
+
+区分你的整体分享率和独立分享率是很重要的。整体分享率关注的是自从你加入站点以来,账号的整体上传与下载量。而独立分享率则针对每一个你正在下载或做种的文件。
+
+
+你可能看到两种符号来代替数字:"Inf.",这个是无限(Infinity)的缩写,意思是你的下载量为0字节,而上传量则是任意一个非零的值(上传量/下载量=无穷大);"---",应该被视为“不可用”,这说明了你的下载量和上传量都是0字节。(上传量/下载量=0/0 这是一个不确定的量)。
+',
+ 'flag' => 1,
+ 'categ' => 2,
+ 'order' => 5,
+ ),
+ 17 =>
+ array (
+ 'id' => 18,
+ 'link_id' => 18,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '为什么我的IP地址显示在我的个人信息页面上?',
+ 'answer' => '只有你自己和网站Moderator及以上的管理员可以看到你的IP地址和Email。普通用户是看不到这些信息的。',
+ 'flag' => 1,
+ 'categ' => 2,
+ 'order' => 6,
+ ),
+ 18 =>
+ array (
+ 'id' => 21,
+ 'link_id' => 21,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '为什么我的“可连接”是“否”?(以及为什么我需要关注这个问题?)',
+ 'answer' => 'Tracker服务器认为你在防火墙后,或者在NAT桥接后,并且无法接收其他Peer的连接请求。
+
+
+这意味着其它的大批Peer无法连接到你,只能由你连接到他们。更糟糕的情况是,如果两个Peer都处于这样的状态,他们将完全无法连接到对方。这对于整体速度有着非常不利的影响。
+
+
+对于这个问题,有以下解决方式:对于防火墙,打开用于接收连接的端口(即你在BT客户端中定义的端口);对于NAT,你需要配置NAT服务器使用Basic NAT方式而不是NAPT(不同的路由有着不同的运行方式。翻阅你的路由文档或客服论坛。你也可以在PortForward找到关于此问题的大量信息)。
+
+
+
+
+
+',
+ 'flag' => 1,
+ 'categ' => 2,
+ 'order' => 9,
+ ),
+ 19 =>
+ array (
+ 'id' => 22,
+ 'link_id' => 22,
+ 'lang_id' => 25,
+ 'type' => 'item',
+ 'question' => '不同的用户等级代表了什么含义?',
+ 'answer' => '
| Peasant | ++ | 被降级的用户,他们有30天时间来提升分享率,否则他们会被踢。不能发表趣味盒内容;不能申请友情链接;不能上传字幕。 + | +
| User | ++ | 新用户的默认级别。只能在每周六中午12点至每周日晚上11点59分发布种子。 | +
| Power User | ++ | 得到一个邀请名额;可以直接发布种子;可以查看NFO文档;可以查看用户列表;可以请求续种; 可以发送邀请; 可以查看排行榜;可以查看其它用户的种子历史(如果用户隐私等级未设置为"强"); 可以删除自己上传的字幕。 | +
| Elite User | ++ | Elite User及以上用户封存账号后不会被删除。 | +
| Crazy User | ++ | 得到两个邀请名额;可以在做种/下载/发布的时候选择匿名模式。 | +
| Insane User | ++ | 可以查看普通日志。 | +
| Veteran User | ++ | 得到三个邀请名额;可以查看其它用户的评论、帖子历史。Veteran User及以上用户会永远保留账号。 | +
| Extreme User | ++ | 可以更新过期的外部信息;可以查看Extreme User论坛。 | +
| Ultimate User | ++ | 得到五个邀请名额。 | +
| Nexus Master | ++ | 得到十个邀请名额。 | +
![]() |
++ | 为网站捐款的主。 | +
| 贵宾(VIP) | ++ | 和Nexus Master拥有相同权限并被认为是精英成员。免除自动降级。 | +
| 其它 | ++ | 自定义等级。 | +
| 养老族(Retiree) | ++ | 退休后的管理组成员。 | +
| 发布员(Uploader) | ++ | 专注的发布者。免除自动降级;可以查看匿名用户的真实身份。 | +
| 总版主(Moderator) | ++ | 可以查看管理组信箱、举报信箱;管理趣味盒内容、投票内容;可以编辑或删除任何发布的种子;可以管理候选;可以管理论坛帖子、用户评论;可以查看机密日志;可以删除任何字幕;可以管理日志中的代码、史册;可以查看用户的邀请记录;可以管理用户帐号的一般信息。不能管理友情链接、最近消息、论坛版块;不能将种子设为置顶或促销;不能查看用户IP或Email等机密信息;不能删除账号。 | +
| 管理员(Administrator) | ++ | 除了不能改变站点设定、管理捐赠外,可以做任何事。 | +
| 维护开发员(Sysop) | ++ | 网站开发/维护人员,可以改变站点设定,不能管理捐赠。 | +
| 主管(Staff Leader) | ++ | 网站主管,可以做任何事。 | +
| Peasant | ++ | 当以下情况时将被自动降至本级: +1.如果你已经下载了超过50GB,你应该有大于0.4的分享率。 +2.如果你已经下载了超过100GB,你应该有大于0.5的分享率。 +3.如果你已经下载了超过200GB,你应该有大于0.6的分享率。 +4.如果你已经下载了超过400GB,你应该有大于0.7的分享率。 +5.如果你已经下载了超过800GB,你应该有大于0.8的分享率。 |
+
| Power User | ++ | 必须注册至少4周,并且下载至少50G,分享率大于1.05。 +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于0.95,你将自动降级。 |
+
| Elite User | ++ | 必须注册至少8周,并且下载至少120G,分享率大于1.55。
+ +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于1.45,你将自动降级。 |
+
| Crazy User | ++ | 必须注册至少15周,并且下载至少300G,分享率大于2.05。
+ +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于1.95,你将自动降级。 |
+
| Insane User | ++ | 必须注册至少25周,并且下载至少500G,分享率大于2.55。 +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于2.45,你将自动降级。 |
+
| Veteran User | ++ | 必须注册至少40周,并且下载至少750G,分享率大于3.05。 +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于2.95,你将自动降级。 |
+
| Extreme User | ++ | 必须注册至少60周,并且下载至少1TB,分享率大于3.55。 +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于3.45,你将自动降级。 |
+
| Ultimate User | ++ | 必须注册至少80周,并且下载至少1.5TB,分享率大于4.05。 +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于3.95,你将自动降级。 |
+
| Nexus Master | ++ | 必须注册至少100周,并且下载至少3TB,分享率大于4.55。 +当条件符合时将被自动提升。注意,无论何时,如果你的分享率低于4.45,你将自动降级。 |
+
![]() |
++ | 只需捐款,详见这里。 | +
| 贵宾(VIP) | ++ | 由管理员仔细斟酌后分配给他们认为对于站点某方面有特殊贡献的用户。 +(任何索取贵宾等级的要求将被自动无视) |
+
| 其它 | ++ | 用户使用魔力值兑换,或由管理员仔细斟酌后授权。 | +
| 养老族(Retiree) | ++ | 由管理员授予。 | +
| 发布员(Uploader) | ++ | 由管理员分配(参见\'发布\'部分以了解详情)。 | +
| 总版主(Moderator) | ++ | 无需多问,我们会找到你的! | +
| 分享率低于 | +0.4 | ++ | 延迟 | +24小时 | +
| 分享率低于 | +0.5 | ++ | 延迟 | +12小时 | +
| 分享率低于 | +0.6 | ++ | 延迟 | +6小时 | +
| 分享率低于 | +0.8 | ++ | 延迟 | +3小时 | +
| Direct Connect | +411 - 413 | +
| BitTorrent | +6881 - 6889 | +
| Kazza | +1214 | +
| Gnutella | +6346 - 6347 | +
| Emule | +4662 | +
| WinMX | +6699 | +
| 透明代理 | ++ | 透明代理在客户端无需配置。他将自动把80端口的信息重定向到代理(有时候也作为非匿名代理的同义词); | +
| 显式代理 | ++ | 浏览器必须经过配置才能使用代理; | +
| 匿名代理 | ++ | 代理将不会把客户标记发送至服务器端 (HTTP_X_FORWARDED_FOR头标志将不被发送。服务器也因此看不到你的IP); | +
| 高度匿名代理 | ++ | 代理将不会把客户标记或代理标记发送至服务器端 (HTTP_X_FORWARDED_FOR和HTTP_VIA and HTTP_PROXY_CONNECTION头标志将不被发送。服务器看不到你的IP,甚至不知道你正在使用代理); | +
| 公用 | ++ | (不言自明了)。 | +
| 分享率低于 | +0.5 | ++ | 最大连接数 | +1 | +
| 分享率低于 | +0.65 | ++ | 最大连接数 | +2 | +
| 分享率低于 | +0.8 | ++ | 最大连接数 | +3 | +
| 分享率低于 | +0.95 | ++ | 最大连接数 | +4 | +
| 分享率大于 | +0.95 | ++ | 最大连接数 | +无限制 | +




| 分享率低于 | +0.5 | ++ | 最大連線數 | +1 | +
| 分享率低于 | +0.65 | ++ | 最大連線數 | +2 | +
| 分享率低于 | +0.8 | ++ | 最大連線數 | +3 | +
| 分享率低于 | +0.95 | ++ | 最大連線數 | +4 | +
| 分享率大于 | +0.95 | ++ | 最大連線數 | +無限制 | +
+| Peasant | ++ | 被降級的用戶,他們有30天時間來提升分享率,否則他們會被踢。無法發表趣味盒內容;無法申請友情鏈結;無法上傳字幕。 + | +
| User | ++ | 新用戶的預設級別。只能在每周六中午12點至每周日晚上11點59分發布種子。 | +
| Power User | ++ | 得到一個邀請名額;可以直接發布種子;可以檢視NFO文件;可以檢視用戶清單;可以要求續種; 可以傳送邀請; 可以檢視排行榜;可以檢視其他用戶的種子曆史(如果用戶隱私等級未設定為"強"); 可以移除自己上傳的字幕。 | +
| Elite User | ++ | Elite User及以上用戶封存賬號后不會被移除。 | +
| Crazy User | ++ | 得到兩個邀請名額;可以在做種/下載/發布的時候選取匿名型態。 | +
| Insane User | ++ | 可以檢視普通日誌。 | +
| Veteran User | ++ | 得到三個邀請名額;可以檢視其他用戶的評論、帖子曆史。Veteran User及以上用戶會永遠保留賬號。 | +
| Extreme User | ++ | 可以更新過期的外部資訊;可以檢視Extreme User論壇。 | +
| Ultimate User | ++ | 得到五個邀請名額。 | +
| Nexus Master | ++ | 得到十個邀請名額。 | +
![]() |
++ | 為網站捐款的主。 | +
| 貴賓(VIP) | ++ | 和Nexus Master擁有相同許可權并被認為是精英成員。免除自動降級。 | +
| 其他 | ++ | 自訂等級。 | +
| 養老族(Retiree) | ++ | 退休后的管理組成員。 | +
| 發布員(Uploader) | ++ | 專注的發布者。免除自動降級;可以檢視匿名用戶的真實身份。 | +
| 總版主(Moderator) | ++ | 可以檢視管理組郵箱、舉報郵箱;管理趣味盒內容、投票內容;可以編輯或移除任何發布的種子;可以管理候選;可以管理論壇帖子、用戶評論;可以檢視機密日誌;可以移除任何字幕;可以管理日誌中的程式碼、史冊;可以檢視用戶的邀請記錄;可以管理用戶帳號的一般資訊。無法管理友情鏈結、最近訊息、論壇版塊;無法將種子設為置頂或促銷;無法檢視用戶IP或Email等機密資訊;無法移除賬號。 | +
| 管理員(Administrator) | ++ | 除了無法改變網站設定、管理捐贈外,可以做任何事。 | +
| 維護開發員(Sysop) | ++ | 網站開發/維護人員,可以改變網站設定,無法管理捐贈。 | +
| 主管(Staff Leader) | ++ | 網站主管,可以做任何事。 | +
| Peasant | ++ | 當以下情況時將被自動降至本級: +1.如果你已經下載了超過50GB,你應該有大于0.4的分享率。 +2.如果你已經下載了超過100GB,你應該有大于0.5的分享率。 +3.如果你已經下載了超過200GB,你應該有大于0.6的分享率。 +4.如果你已經下載了超過400GB,你應該有大于0.7的分享率。 +5.如果你已經下載了超過800GB,你應該有大于0.8的分享率。 |
+
| Power User | ++ | 必須註冊至少4周,并且下載至少50G,分享率大于1.05。 +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于0.95,你將自動降級。 |
+
| Elite User | ++ | 必須註冊至少8周,并且下載至少120G,分享率大于1.55。
+ +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于1.45,你將自動降級。 |
+
| Crazy User | ++ | 必須註冊至少15周,并且下載至少300G,分享率大于2.05。
+ +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于1.95,你將自動降級。 |
+
| Insane User | ++ | 必須註冊至少25周,并且下載至少500G,分享率大于2.55。 +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于2.45,你將自動降級。 |
+
| Veteran User | ++ | 必須註冊至少40周,并且下載至少750G,分享率大于3.05。 +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于2.95,你將自動降級。 |
+
| Extreme User | ++ | 必須註冊至少60周,并且下載至少1TB,分享率大于3.55。 +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于3.45,你將自動降級。 |
+
| Ultimate User | ++ | 必須註冊至少80周,并且下載至少1.5TB,分享率大于4.05。 +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于3.95,你將自動降級。 |
+
| Nexus Master | ++ | 必須註冊至少100周,并且下載至少3TB,分享率大于4.55。 +當條件符合時將被自動提升。注意,無論何時,如果你的分享率低于4.45,你將自動降級。 |
+
![]() |
++ | 只需捐款,詳見這裡。 | +
| 貴賓(VIP) | ++ | 由管理員仔細斟酌后配置給他們認為對于網站某方面有特殊貢獻的用戶。 +(任何索取貴賓等級的要求將被自動無視) |
+
| 其他 | ++ | 用戶使用魔力值兌換,或由管理員仔細斟酌后授權。 | +
| 養老族(Retiree) | ++ | 由管理員授予。 | +
| 發布員(Uploader) | ++ | 由管理員配置(參見\'發布\'部分以了解詳情)。 | +
| 總版主(Moderator) | ++ | 無需多問,我們會找到你的! | +
| 分享率低于 | +0.4 | ++ | 延遲 | +24小時 | +
| 分享率低于 | +0.5 | ++ | 延遲 | +12小時 | +
| 分享率低于 | +0.6 | ++ | 延遲 | +6小時 | +
| 分享率低于 | +0.8 | ++ | 延遲 | +3小時 | +
| Direct Connect | +411 - 413 | +
| BitTorrent | +6881 - 6889 | +
| Kazza | +1214 | +
| Gnutella | +6346 - 6347 | +
| Emule | +4662 | +
| WinMX | +6699 | +
| 透通代理 | ++ | 透通代理在用戶端無需配置。他將自動把80通訊埠的資訊重導到代理(有時候也作為非匿名代理的同義詞); | +
| 顯式代理 | ++ | 瀏覽器必須經過配置才能使用代理; | +
| 匿名代理 | ++ | 代理將不會把用戶記號傳送至伺服器端 (HTTP_X_FORWARDED_FOR頭旗標將不被傳送。伺服器也因此看不到你的IP); | +
| 高度匿名代理 | ++ | 代理將不會把用戶記號或代理記號傳送至伺服器端 (HTTP_X_FORWARDED_FOR和HTTP_VIA and HTTP_PROXY_CONNECTION頭旗標將不被傳送。伺服器看不到你的IP,甚至不知道你正在使用代理); | +
| 公用 | ++ | (不言自明了)。 | +
+| Peasant | ++ | Demoted users. They must improve their ratio within 30 days or they will be banned. Cannot post funbox item, apply for links or upload subtitles. + | +
| User | ++ | The default class of new members. may upload torrents between 12:00, Saturday and 23:59 Sunday of every week. | +
| Power User | ++ | Get a invitation. Can upload torrents, view NFO files, view user list, ask for reseed, send invitation, access Power User and External Trackers forums, view Top 10, view other users\' torrent history (if user\'s privacy level is not set \'strong\'), delete subtitle uploaded by oneself. | +
| Elite User | ++ | Elite User or above would never be deleted if parked. | +
| Crazy User | ++ | Get two invitations. Can be anonymous when seeding/leeching/uploading. | +
| Insane User | ++ | Can view general logs. | +
| Veteran User | ++ | Get three invitations. Can view other users\' history of comments and forum posts. Veteran User or above would never be deleted whether parked or not. | +
| Extreme User | ++ | Can update outdated external information and access Extreme User forum. | +
| Ultimate User | ++ | Get 5 invitations. | +
| Nexus Master | ++ | Get 10 invitations. | +
![]() |
++ | Has donated money to this tracker. | +
| VIP | ++ | Same privileges as Nexus Master and is considered an Elite Member of this tracker. Immune to automatic demotion. | +
| Retiree | ++ | Former staff members. | +
| Other | ++ | Customized title. | +
| Uploader | ++ | Dedicated uploader, immune to automatic demotion. Can view who anonymous ones are. | +
| Moderator | ++ | Can view staffbox and reportbox, manage funbox and polls, edit and delete any uploaded torrent, manage offers, manage forum posts and user comments, view confidential logs, delete any uploaded subtitle, manage code updates and chronicles at logs, view users\' invitation history, change general user account information. Cannot manage links,recent news or forums. Cannot set torrents sticky or on promotion.Cannot view users\' confidential information (e.g. IP address and Email address). Cannot delete user account. | +
| Administrator | ++ | Other than changing site settings and managing donation, can do just about anything. | +
| SysOp | ++ | Dedicated site developer. Except managing donation, can do anything (including changing site settings) | +
| Staff Leader | ++ | The boss. Can do anything. | +
| Peasant | ++ | User would be demoted to this class under any of the following circumstances: +1.Downloaded more than 50 GB and with ratio below 0.4 +2.Downloaded more than 100 GB and with ratio below 0.5 +3.Downloaded more than 200 GB and with ratio below 0.6 +4.Downloaded more than 400 GB and with ratio below 0.7 +5.Downloaded more than 800 GB and with ratio below 0.8 |
+
| Power User | ++ | Must have been a member for at least 4 weeks, have downloaded at least 50GB and have a ratio at or above 1.05. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 0.95 at any time. |
+
| Elite User | ++ | Must have been a member for at least 8 weeks, have downloaded at least 120GB and have a ratio at or above 1.55. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 1.45 at any time. |
+
| Crazy User | ++ | Must have been a member for at least 15 weeks, have downloaded at least 300GB and have a ratio at or above 2.05. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 1.95 at any time. |
+
| Insane User | ++ | Must have been a member for at least 25 weeks, have downloaded at least 500GB and have a ratio at or above 2.55. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 2.45 at any time. |
+
| Veteran User | ++ | Must have been a member for at least 40 weeks, have downloaded at least 750GB and have a ratio at or above 3.05. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 2.95 at any time. |
+
| Extreme User | ++ | Must have been a member for at least 60 weeks, have downloaded at least 1TB and have a ratio at or above 3.55. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 3.45 at any time. |
+
| Ultimate User | ++ | Must have been a member for at least 80 weeks, have downloaded at least 1.5TB and have a ratio at or above 4.05. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 3.95 at any time. |
+
| Nexus Master | ++ | Must have been a member for at least 100 weeks, have downloaded at least 3TB and have a ratio at or above 4.55. The promotion is automatic when these conditions are met. +Note that you will be automatically demoted from this status if your ratio drops below 4.45 at any time. |
+
![]() |
++ | Just donate, see here for the details. | +
| VIP | ++ | Assigned by mods at their discretion to users they feel contribute something special to the site. (Anyone begging for VIP status will be automatically disqualified.) | +
| Other | ++ | Customized title. Exchanged at bonus system or granted by admins. | +
| Uploader | ++ | Appointed by Admins/SysOp/Staff Leader (see the \\\\\\\\\\\\\\\'Uploading\\\\\\\\\\\\\\\' section for conditions). | +
| Retiree | ++ | Granted by Admins/SysOp/Staff Leader | +
| Moderator | ++ | You don\\\\\\\\\\\\\\\'t ask us, we\\\\\\\\\\\\\\\'ll ask you! | +
| Ratio below | +0.4 | ++ | delay of | +24h | +
| Ratio below | +0.5 | ++ | delay of | +12h | +
| Ratio below | +0.6 | ++ | delay of | +6h | +
| Ratio below | +0.8 | ++ | delay of | +3h | +
| Direct Connect | +411 - 413 | +
| BitTorrent | +6881 - 6889 | +
| Kazza | +1214 | +
| Gnutella | +6346 - 6347 | +
| Emule | +4662 | +
| WinMX | +6699 | +
| Transparent | ++ | A transparent proxy is one that needs no configuration on the clients. It works by automatically redirecting all port 80 traffic to the proxy. (Sometimes used as synonymous for non-anonymous.) | +
| Explicit/Voluntary | ++ | Clients must configure their browsers to use them. | +
| Anonymous | ++ | The proxy sends no client identification to the server. (HTTP_X_FORWARDED_FOR header is not sent; the server does not see your IP.) | +
| Highly Anonymous | ++ | The proxy sends no client nor proxy identification to the server. (HTTP_X_FORWARDED_FOR, HTTP_VIA and HTTP_PROXY_CONNECTION headers are not sent; the server doesn\'t see your IP and doesn\'t even know you\'re using a proxy.) | +
| Public | ++ | (Self explanatory) | +
| Ratio below | +0.5 | ++ | available slots | +1 | +
| Ratio below | +0.65 | ++ | available slots | +2 | +
| Ratio below | +0.8 | ++ | available slots | +3 | +
| Ratio below | +0.95 | ++ | available slots | +4 | +
| Ratio above | +0.95 | ++ | available slots | +unlimited | +

