BioTorrents.de’s version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

gazelle.sql 66KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859
  1. -- Please see the limits for kinds of fields below.
  2. -- The commented dates above each table refer to when I last manually reconciled the schema.
  3. --
  4. -- * Integers, ID numbers, etc.
  5. -- * Warning: #1681 Integer display width is deprecated and will be removed in a future release
  6. --
  7. -- * Accession numbers: varchar(50)
  8. -- * Gazelle titles: varchar(50)
  9. -- * Torrent titles: varchar(255)
  10. -- * Ocelot tokens: char(32)
  11. -- * Tag lists: varchar(500)
  12. -- Development or production?
  13. SET FOREIGN_KEY_CHECKS = 0;
  14. CREATE DATABASE gazelle_development CHARACTER SET utf8mb4;
  15. USE gazelle_development;
  16. -- 2020-10-11
  17. CREATE TABLE `api_user_tokens`(
  18. `ID` INT NOT NULL AUTO_INCREMENT,
  19. `UserID` INT NOT NULL,
  20. `AppID` INT DEFAULT NULL,
  21. `Name` VARCHAR(50) NOT NULL,
  22. `Token` CHAR(255) NOT NULL,
  23. `Scope` TEXT,
  24. `Created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  25. `Revoked` ENUM('0', '1', '2') NOT NULL DEFAULT '0',
  26. PRIMARY KEY(`ID`, `Token`),
  27. UNIQUE KEY `Name`(`Name`),
  28. KEY `UserID`(`UserID`)
  29. ) ENGINE = InnoDB CHARSET = utf8mb4;
  30. -- 2020-10-11
  31. CREATE TABLE `api_applications`(
  32. `ID` INT unsigned NOT NULL AUTO_INCREMENT,
  33. `UserID` INT unsigned NOT NULL,
  34. `Name` VARCHAR(50) NOT NULL,
  35. `Token` CHAR(255) NOT NULL,
  36. `Description` TEXT,
  37. `CategoryID` INT unsigned NOT NULL DEFAULT '0',
  38. `TagList` VARCHAR(500) NOT NULL DEFAULT '',
  39. `Created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  40. PRIMARY KEY(`ID`),
  41. UNIQUE KEY `Name`(`Name`),
  42. KEY `UserID`(`UserID`),
  43. KEY `CategoryID`(`CategoryID`)
  44. ) ENGINE = InnoDB CHARSET = utf8mb4;
  45. -- https://github.com/OPSnet/Gazelle/blob/master/db/data/gazelle.sql
  46. -- 2020-12-12
  47. CREATE TABLE `login_attempts`(
  48. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  49. `UserID` int unsigned NOT NULL DEFAULT 0,
  50. `IP` varchar(15) NOT NULL,
  51. `LastAttempt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  52. `Attempts` int unsigned NOT NULL DEFAULT 1,
  53. `BannedUntil` datetime DEFAULT NULL,
  54. `Bans` int unsigned NOT NULL,
  55. `Capture` varchar(20) DEFAULT NULL,
  56. PRIMARY KEY (`ID`),
  57. KEY `IP` (`IP`),
  58. KEY `attempts_idx` (`Attempts`)
  59. ) ENGINE = InnoDB CHARSET = utf8mb4;
  60. -- https://github.com/OPSnet/Gazelle/blob/master/db/data/gazelle.sql
  61. -- 2020-12-12
  62. CREATE TABLE `ip_bans` (
  63. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  64. `FromIP` int unsigned NOT NULL,
  65. `ToIP` int unsigned NOT NULL,
  66. `Reason` varchar(255) DEFAULT NULL,
  67. `UserID` int unsigned NOT NULL DEFAULT 0,
  68. `Created` datetime NOT NULL DEFAULT current_timestamp,
  69. PRIMARY KEY (`ID`),
  70. UNIQUE KEY `FromIP_2` (`FromIP`,`ToIP`)
  71. ) ENGINE=InnoDB CHARSET=utf8mb4;
  72. -- 2020-03-09
  73. CREATE TABLE `artists_alias` (
  74. `AliasID` int NOT NULL AUTO_INCREMENT,
  75. `ArtistID` int NOT NULL,
  76. `Name` varchar(200) DEFAULT NULL, -- todo: 200 vs. 255?
  77. `Redirect` int NOT NULL DEFAULT '0',
  78. `UserID` int unsigned NOT NULL DEFAULT '0',
  79. PRIMARY KEY (`AliasID`),
  80. KEY `ArtistID` (`ArtistID`),
  81. KEY `Name` (`Name`)
  82. ) ENGINE=InnoDB CHARSET=utf8mb4;
  83. -- 2020-03-09
  84. CREATE TABLE `artists_aliases` (
  85. `ID` int NOT NULL AUTO_INCREMENT,
  86. `ArtistID` int NOT NULL,
  87. `Name` varchar(255) NOT NULL DEFAULT '',
  88. `Primary` enum('0','1') DEFAULT '0',
  89. PRIMARY KEY (`ArtistID`,`Name`),
  90. UNIQUE KEY `ArtistID` (`ArtistID`,`Primary`),
  91. KEY `ID` (`ID`)
  92. ) ENGINE=InnoDB CHARSET=utf8mb4;
  93. -- 2020-03-09
  94. CREATE TABLE `artists_group` (
  95. `ArtistID` int NOT NULL AUTO_INCREMENT,
  96. `Name` varchar(255) NOT NULL DEFAULT '',
  97. `ORCiD` varchar(20) NOT NULL DEFAULT '', -- todo
  98. `RevisionID` int DEFAULT NULL, -- todo: 12 vs. 10?
  99. `LastCommentID` int NOT NULL DEFAULT '0',
  100. PRIMARY KEY (`ArtistID`,`Name`),
  101. KEY `RevisionID` (`RevisionID`)
  102. ) ENGINE=InnoDB CHARSET=utf8mb4;
  103. -- 2020-03-09
  104. CREATE TABLE `artists_tags` (
  105. `TagID` int NOT NULL DEFAULT '0',
  106. `ArtistID` int NOT NULL DEFAULT '0',
  107. `PositiveVotes` int NOT NULL DEFAULT '1',
  108. `NegativeVotes` int NOT NULL DEFAULT '1',
  109. `UserID` int DEFAULT NULL,
  110. PRIMARY KEY (`TagID`,`ArtistID`),
  111. KEY `TagID` (`TagID`),
  112. KEY `ArtistID` (`ArtistID`),
  113. KEY `PositiveVotes` (`PositiveVotes`),
  114. KEY `NegativeVotes` (`NegativeVotes`),
  115. KEY `UserID` (`UserID`)
  116. ) ENGINE=InnoDB CHARSET=utf8mb4;
  117. -- 2020-03-09
  118. CREATE TABLE `badges` (
  119. `ID` int NOT NULL AUTO_INCREMENT,
  120. `Icon` varchar(255) NOT NULL,
  121. `Name` varchar(255) DEFAULT NULL,
  122. `Description` varchar(255) DEFAULT NULL,
  123. PRIMARY KEY (`ID`)
  124. ) ENGINE=InnoDB CHARSET=utf8mb4;
  125. -- 2020-03-09
  126. CREATE TABLE `blog` (
  127. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  128. `UserID` int unsigned NOT NULL,
  129. `Title` varchar(255) NOT NULL,
  130. `Body` text,
  131. `Time` datetime,
  132. `ThreadID` int unsigned DEFAULT NULL,
  133. `Important` tinyint NOT NULL DEFAULT '0',
  134. PRIMARY KEY (`ID`),
  135. KEY `UserID` (`UserID`),
  136. KEY `Time` (`Time`)
  137. ) ENGINE=InnoDB CHARSET=utf8mb4;
  138. -- 2020-03-09
  139. CREATE TABLE `bookmarks_artists` (
  140. `UserID` int NOT NULL,
  141. `ArtistID` int NOT NULL,
  142. `Time` datetime,
  143. KEY `UserID` (`UserID`),
  144. KEY `ArtistID` (`ArtistID`)
  145. ) ENGINE=InnoDB CHARSET=utf8mb4;
  146. -- 2020-03-09
  147. CREATE TABLE `bookmarks_collages` (
  148. `UserID` int NOT NULL,
  149. `CollageID` int NOT NULL,
  150. `Time` datetime,
  151. KEY `UserID` (`UserID`),
  152. KEY `CollageID` (`CollageID`)
  153. ) ENGINE=InnoDB CHARSET=utf8mb4;
  154. -- 2020-03-09
  155. CREATE TABLE `bookmarks_requests` (
  156. `UserID` int NOT NULL,
  157. `RequestID` int NOT NULL,
  158. `Time` datetime,
  159. KEY `UserID` (`UserID`),
  160. KEY `RequestID` (`RequestID`)
  161. ) ENGINE=InnoDB CHARSET=utf8mb4;
  162. -- 2020-03-09
  163. CREATE TABLE `bookmarks_torrents` (
  164. `UserID` int NOT NULL,
  165. `GroupID` int NOT NULL,
  166. `Time` datetime,
  167. `Sort` int NOT NULL DEFAULT '0', -- todo: 11 vs. 10?
  168. UNIQUE KEY `groups_users` (`GroupID`,`UserID`),
  169. KEY `UserID` (`UserID`),
  170. KEY `GroupID` (`GroupID`)
  171. ) ENGINE=InnoDB CHARSET=utf8mb4;
  172. -- 2020-03-09
  173. CREATE TABLE `collages` (
  174. `ID` int NOT NULL AUTO_INCREMENT,
  175. `Name` varchar(100) NOT NULL DEFAULT '', -- todo: 100 vs. 255?
  176. `Description` text,
  177. `UserID` int NOT NULL DEFAULT '0',
  178. `NumTorrents` int NOT NULL DEFAULT '0',
  179. `Deleted` enum('0','1') DEFAULT '0',
  180. `Locked` enum('0','1') NOT NULL DEFAULT '0',
  181. `CategoryID` int NOT NULL DEFAULT '1',
  182. `TagList` varchar(500) NOT NULL DEFAULT '',
  183. `MaxGroups` int NOT NULL DEFAULT '0',
  184. `MaxGroupsPerUser` int NOT NULL DEFAULT '0',
  185. `Featured` tinyint NOT NULL DEFAULT '0',
  186. `Subscribers` int DEFAULT '0',
  187. `updated` datetime,
  188. PRIMARY KEY (`ID`),
  189. UNIQUE KEY `Name` (`Name`),
  190. KEY `UserID` (`UserID`),
  191. KEY `CategoryID` (`CategoryID`)
  192. ) ENGINE=InnoDB CHARSET=utf8mb4;
  193. -- 2020-03-09
  194. CREATE TABLE `collages_artists` (
  195. `CollageID` int NOT NULL,
  196. `ArtistID` int NOT NULL,
  197. `UserID` int NOT NULL,
  198. `Sort` int NOT NULL DEFAULT '0',
  199. `AddedOn` datetime,
  200. PRIMARY KEY (`CollageID`,`ArtistID`),
  201. KEY `UserID` (`UserID`),
  202. KEY `Sort` (`Sort`)
  203. ) ENGINE=InnoDB CHARSET=utf8mb4;
  204. -- 2020-03-09
  205. CREATE TABLE `collages_torrents` (
  206. `CollageID` int NOT NULL,
  207. `GroupID` int NOT NULL,
  208. `UserID` int NOT NULL,
  209. `Sort` int NOT NULL DEFAULT '0',
  210. `AddedOn` datetime,
  211. PRIMARY KEY (`CollageID`,`GroupID`),
  212. KEY `UserID` (`UserID`),
  213. KEY `Sort` (`Sort`)
  214. ) ENGINE=InnoDB CHARSET=utf8mb4;
  215. -- 2020-03-09
  216. CREATE TABLE `comments` (
  217. `ID` int NOT NULL AUTO_INCREMENT,
  218. `Page` enum('artist','collages','requests','torrents') NOT NULL,
  219. `PageID` int NOT NULL,
  220. `AuthorID` int NOT NULL,
  221. `AddedTime` datetime,
  222. `Body` mediumtext,
  223. `EditedUserID` int DEFAULT NULL,
  224. `EditedTime` datetime DEFAULT NULL,
  225. PRIMARY KEY (`ID`),
  226. KEY `Page` (`Page`,`PageID`),
  227. KEY `AuthorID` (`AuthorID`)
  228. ) ENGINE=InnoDB CHARSET=utf8mb4;
  229. -- 2020-03-09
  230. CREATE TABLE `comments_edits` (
  231. `Page` enum('forums','artist','collages','requests','torrents') DEFAULT NULL,
  232. `PostID` int DEFAULT NULL,
  233. `EditUser` int DEFAULT NULL,
  234. `EditTime` datetime DEFAULT NULL,
  235. `Body` mediumtext,
  236. KEY `EditUser` (`EditUser`),
  237. KEY `PostHistory` (`Page`,`PostID`,`EditTime`)
  238. ) ENGINE=InnoDB CHARSET=utf8mb4;
  239. -- 2020-03-09
  240. CREATE TABLE `cover_art` (
  241. `ID` int NOT NULL AUTO_INCREMENT,
  242. `GroupID` int NOT NULL,
  243. `Image` varchar(255) NOT NULL DEFAULT '',
  244. `Summary` varchar(100) DEFAULT NULL, -- todo: 100 vs. 255?
  245. `UserID` int NOT NULL DEFAULT '0',
  246. `Time` datetime DEFAULT NULL,
  247. PRIMARY KEY (`ID`),
  248. UNIQUE KEY `GroupID` (`GroupID`,`Image`)
  249. ) ENGINE=InnoDB CHARSET=utf8mb4;
  250. -- 2020-03-09
  251. CREATE TABLE `deletion_requests` (
  252. `UserID` int unsigned NOT NULL,
  253. `Value` varchar(255) NOT NULL,
  254. `Type` varchar(255) NOT NULL,
  255. `Reason` text,
  256. `Time` datetime,
  257. PRIMARY KEY (`UserID`,`Value`)
  258. ) ENGINE=InnoDB CHARSET=utf8mb4;
  259. -- 2020-03-09
  260. CREATE TABLE `donations` (
  261. `UserID` int NOT NULL,
  262. `Amount` decimal(6,2) NOT NULL,
  263. `Email` varchar(255) NOT NULL,
  264. `Time` datetime,
  265. `Currency` varchar(5) NOT NULL DEFAULT 'USD',
  266. `Source` varchar(30) NOT NULL DEFAULT '', -- todo: 30 vs. 25?
  267. `Reason` mediumtext,
  268. `Rank` int DEFAULT '0',
  269. `AddedBy` int DEFAULT '0',
  270. `TotalRank` int DEFAULT '0',
  271. KEY `UserID` (`UserID`),
  272. KEY `Time` (`Time`),
  273. KEY `Amount` (`Amount`)
  274. ) ENGINE=InnoDB CHARSET=utf8mb4;
  275. -- 2020-03-09
  276. CREATE TABLE `donations_bitcoin` (
  277. `BitcoinAddress` varchar(35) NOT NULL, -- https://en.bitcoin.it/wiki/Address
  278. `Amount` decimal(24,8) NOT NULL,
  279. KEY `BitcoinAddress` (`BitcoinAddress`,`Amount`)
  280. ) ENGINE=InnoDB CHARSET=utf8mb4;
  281. -- 2020-03-09
  282. CREATE TABLE `donor_forum_usernames` (
  283. `UserID` int NOT NULL DEFAULT '0',
  284. `Prefix` varchar(30) NOT NULL DEFAULT '',
  285. `Suffix` varchar(30) NOT NULL DEFAULT '',
  286. `UseComma` tinyint DEFAULT '1',
  287. PRIMARY KEY (`UserID`)
  288. ) ENGINE=InnoDB CHARSET=utf8mb4;
  289. -- 2020-03-09
  290. CREATE TABLE `donor_rewards` (
  291. `UserID` int NOT NULL DEFAULT '0',
  292. `IconMouseOverText` varchar(200) NOT NULL DEFAULT '', -- todo: 200 vs. 255?
  293. `AvatarMouseOverText` varchar(200) NOT NULL DEFAULT '', -- todo
  294. `CustomIcon` varchar(200) NOT NULL DEFAULT '', -- todo
  295. `SecondAvatar` varchar(200) NOT NULL DEFAULT '', -- todo
  296. `CustomIconLink` varchar(200) NOT NULL DEFAULT '', -- todo
  297. `ProfileInfo1` text,
  298. `ProfileInfo2` text,
  299. `ProfileInfo3` text,
  300. `ProfileInfo4` text,
  301. `ProfileInfoTitle1` varchar(255) NOT NULL,
  302. `ProfileInfoTitle2` varchar(255) NOT NULL,
  303. `ProfileInfoTitle3` varchar(255) NOT NULL,
  304. `ProfileInfoTitle4` varchar(255) NOT NULL,
  305. PRIMARY KEY (`UserID`)
  306. ) ENGINE=InnoDB CHARSET=utf8mb4;
  307. -- 2020-03-09
  308. CREATE TABLE `dupe_groups` (
  309. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  310. `Comments` text,
  311. PRIMARY KEY (`ID`)
  312. ) ENGINE=InnoDB CHARSET=utf8mb4;
  313. -- 2020-03-09
  314. CREATE TABLE `email_blacklist` (
  315. `ID` int NOT NULL AUTO_INCREMENT,
  316. `UserID` int NOT NULL,
  317. `Email` varchar(255) NOT NULL,
  318. `Time` datetime,
  319. `Comment` text,
  320. PRIMARY KEY (`ID`)
  321. ) ENGINE=InnoDB CHARSET=utf8mb4;
  322. -- 2020-03-09
  323. CREATE TABLE `featured_albums` (
  324. `GroupID` int NOT NULL DEFAULT '0',
  325. `ThreadID` int NOT NULL DEFAULT '0',
  326. `Title` varchar(35) NOT NULL DEFAULT '', -- todo: 35 vs. 50 vs. 255?
  327. `Started` datetime,
  328. `Ended` datetime
  329. ) ENGINE=InnoDB CHARSET=utf8mb4;
  330. -- 2020-03-09
  331. CREATE TABLE `featured_merch` (
  332. `ProductID` int NOT NULL DEFAULT '0',
  333. `Title` varchar(35) NOT NULL DEFAULT '', -- todo: 35 vs. 50 vs. 255?
  334. `Image` varchar(255) NOT NULL DEFAULT '',
  335. `Started` datetime,
  336. `Ended` datetime,
  337. `ArtistID` int unsigned DEFAULT '0'
  338. ) ENGINE=InnoDB CHARSET=utf8mb4;
  339. -- 2020-03-09
  340. CREATE TABLE `forums` (
  341. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  342. `CategoryID` tinyint NOT NULL DEFAULT '0',
  343. `Sort` int unsigned NOT NULL,
  344. `Name` varchar(40) NOT NULL DEFAULT '', -- todo: 40 vs. 50 vs. 255?
  345. `Description` varchar(255) DEFAULT '',
  346. `MinClassRead` int NOT NULL DEFAULT '0',
  347. `MinClassWrite` int NOT NULL DEFAULT '0',
  348. `MinClassCreate` int NOT NULL DEFAULT '0',
  349. `NumTopics` int NOT NULL DEFAULT '0',
  350. `NumPosts` int NOT NULL DEFAULT '0',
  351. `LastPostID` int NOT NULL DEFAULT '0',
  352. `LastPostAuthorID` int NOT NULL DEFAULT '0',
  353. `LastPostTopicID` int NOT NULL DEFAULT '0',
  354. `LastPostTime` datetime,
  355. PRIMARY KEY (`ID`),
  356. KEY `Sort` (`Sort`),
  357. KEY `MinClassRead` (`MinClassRead`)
  358. ) ENGINE=InnoDB CHARSET=utf8mb4;
  359. -- 2020-03-09
  360. CREATE TABLE `forums_categories` (
  361. `ID` tinyint NOT NULL AUTO_INCREMENT,
  362. `Name` varchar(40) NOT NULL DEFAULT '', -- todo: 40 vs. 50 vs. 255?
  363. `Sort` int unsigned NOT NULL DEFAULT '0',
  364. PRIMARY KEY (`ID`),
  365. KEY `Sort` (`Sort`)
  366. ) ENGINE=InnoDB CHARSET=utf8mb4;
  367. -- 2020-03-09
  368. CREATE TABLE `forums_last_read_topics` (
  369. `UserID` int NOT NULL,
  370. `TopicID` int NOT NULL,
  371. `PostID` int NOT NULL,
  372. PRIMARY KEY (`UserID`,`TopicID`),
  373. KEY `TopicID` (`TopicID`)
  374. ) ENGINE=InnoDB CHARSET=utf8mb4;
  375. -- 2020-03-09
  376. CREATE TABLE `forums_polls` (
  377. `TopicID` int unsigned NOT NULL,
  378. `Question` varchar(255) NOT NULL,
  379. `Answers` text,
  380. `Featured` datetime,
  381. `Closed` enum('0','1') NOT NULL DEFAULT '0',
  382. PRIMARY KEY (`TopicID`)
  383. ) ENGINE=InnoDB CHARSET=utf8mb4;
  384. -- 2020-03-09
  385. CREATE TABLE `forums_polls_votes` (
  386. `TopicID` int unsigned NOT NULL,
  387. `UserID` int unsigned NOT NULL,
  388. `Vote` tinyint unsigned NOT NULL,
  389. PRIMARY KEY (`TopicID`,`UserID`)
  390. ) ENGINE=InnoDB CHARSET=utf8mb4;
  391. -- 2020-03-09
  392. CREATE TABLE `forums_posts` (
  393. `ID` int NOT NULL AUTO_INCREMENT,
  394. `TopicID` int NOT NULL,
  395. `AuthorID` int NOT NULL,
  396. `AddedTime` datetime,
  397. `Body` mediumtext,
  398. `EditedUserID` int DEFAULT NULL,
  399. `EditedTime` datetime DEFAULT NULL,
  400. PRIMARY KEY (`ID`),
  401. KEY `TopicID` (`TopicID`),
  402. KEY `AuthorID` (`AuthorID`)
  403. ) ENGINE=InnoDB CHARSET=utf8mb4;
  404. -- 2020-03-09
  405. CREATE TABLE `forums_specific_rules` (
  406. `ForumID` int unsigned DEFAULT NULL,
  407. `ThreadID` int DEFAULT NULL
  408. ) ENGINE=InnoDB CHARSET=utf8mb4;
  409. -- 2020-03-09
  410. CREATE TABLE `forums_topics` (
  411. `ID` int NOT NULL AUTO_INCREMENT,
  412. `Title` varchar(150) NOT NULL, -- todo: 150 vs. 255?
  413. `AuthorID` int NOT NULL,
  414. `IsLocked` enum('0','1') NOT NULL DEFAULT '0',
  415. `IsSticky` enum('0','1') NOT NULL DEFAULT '0',
  416. `ForumID` int NOT NULL,
  417. `NumPosts` int NOT NULL DEFAULT '0',
  418. `LastPostID` int NOT NULL DEFAULT '0',
  419. `LastPostTime` datetime,
  420. `LastPostAuthorID` int NOT NULL,
  421. `StickyPostID` int NOT NULL DEFAULT '0',
  422. `Ranking` tinyint DEFAULT '0',
  423. `CreatedTime` datetime,
  424. PRIMARY KEY (`ID`),
  425. KEY `AuthorID` (`AuthorID`),
  426. KEY `ForumID` (`ForumID`),
  427. KEY `IsSticky` (`IsSticky`),
  428. KEY `LastPostID` (`LastPostID`),
  429. KEY `Title` (`Title`),
  430. KEY `CreatedTime` (`CreatedTime`)
  431. ) ENGINE=InnoDB CHARSET=utf8mb4;
  432. -- 2020-03-09
  433. CREATE TABLE `forums_topic_notes` (
  434. `ID` int NOT NULL AUTO_INCREMENT,
  435. `TopicID` int NOT NULL,
  436. `AuthorID` int NOT NULL,
  437. `AddedTime` datetime,
  438. `Body` mediumtext,
  439. PRIMARY KEY (`ID`),
  440. KEY `TopicID` (`TopicID`),
  441. KEY `AuthorID` (`AuthorID`)
  442. ) ENGINE=InnoDB CHARSET=utf8mb4;
  443. -- 2020-03-09
  444. CREATE TABLE `friends` (
  445. `UserID` int unsigned NOT NULL,
  446. `FriendID` int unsigned NOT NULL,
  447. `Comment` text,
  448. PRIMARY KEY (`UserID`,`FriendID`),
  449. KEY `UserID` (`UserID`),
  450. KEY `FriendID` (`FriendID`)
  451. ) ENGINE=InnoDB CHARSET=utf8mb4;
  452. -- 2020-03-09
  453. CREATE TABLE `geoip_asn` (
  454. `StartIP` varbinary(16) NOT NULL,
  455. `EndIP` varbinary(16) NOT NULL,
  456. `ASN` decimal(10,0) NOT NULL,
  457. PRIMARY KEY (`StartIP`,`EndIP`)
  458. ) ENGINE=InnoDB CHARSET=utf8mb4;
  459. -- 2020-03-09
  460. CREATE TABLE `geoip_country` (
  461. `StartIP` decimal(39,0) NOT NULL,
  462. `EndIP` decimal(39,0) NOT NULL,
  463. `Code` varchar(2) NOT NULL,
  464. PRIMARY KEY (`StartIP`,`EndIP`)
  465. ) ENGINE=InnoDB CHARSET=utf8mb4;
  466. -- 2020-03-09
  467. CREATE TABLE `group_log` (
  468. `ID` int NOT NULL AUTO_INCREMENT,
  469. `GroupID` int NOT NULL,
  470. `TorrentID` int NOT NULL,
  471. `UserID` int NOT NULL DEFAULT '0',
  472. `Info` mediumtext,
  473. `Time` datetime,
  474. `Hidden` tinyint NOT NULL DEFAULT '0',
  475. PRIMARY KEY (`ID`),
  476. KEY `GroupID` (`GroupID`),
  477. KEY `TorrentID` (`TorrentID`),
  478. KEY `UserID` (`UserID`)
  479. ) ENGINE=InnoDB CHARSET=utf8mb4;
  480. -- 2020-03-09
  481. CREATE TABLE `invites` (
  482. `InviterID` int NOT NULL DEFAULT '0',
  483. `InviteKey` char(32) NOT NULL,
  484. `Email` varchar(255) NOT NULL,
  485. `Expires` datetime,
  486. `Reason` varchar(255) NOT NULL DEFAULT '',
  487. PRIMARY KEY (`InviteKey`),
  488. KEY `Expires` (`Expires`),
  489. KEY `InviterID` (`InviterID`)
  490. ) ENGINE=InnoDB CHARSET=utf8mb4;
  491. -- 2020-03-09
  492. CREATE TABLE `invite_tree` (
  493. `UserID` int NOT NULL DEFAULT '0',
  494. `InviterID` int NOT NULL DEFAULT '0',
  495. `TreePosition` int NOT NULL DEFAULT '1',
  496. `TreeID` int NOT NULL DEFAULT '1',
  497. `TreeLevel` int NOT NULL DEFAULT '0',
  498. PRIMARY KEY (`UserID`),
  499. KEY `InviterID` (`InviterID`),
  500. KEY `TreePosition` (`TreePosition`),
  501. KEY `TreeID` (`TreeID`),
  502. KEY `TreeLevel` (`TreeLevel`)
  503. ) ENGINE=InnoDB CHARSET=utf8mb4;
  504. -- 2020-03-09
  505. CREATE TABLE `label_aliases` (
  506. `ID` int NOT NULL AUTO_INCREMENT,
  507. `BadLabel` varchar(100) NOT NULL, -- todo: 100 vs. 255?
  508. `AliasLabel` varchar(100) NOT NULL, -- todo
  509. PRIMARY KEY (`ID`),
  510. KEY `BadLabel` (`BadLabel`),
  511. KEY `AliasLabel` (`AliasLabel`)
  512. ) ENGINE=InnoDB CHARSET=utf8mb4;
  513. -- 2020-03-09
  514. CREATE TABLE `last_sent_email` (
  515. `UserID` int NOT NULL,
  516. PRIMARY KEY (`UserID`)
  517. ) ENGINE=InnoDB CHARSET=utf8mb4;
  518. -- 2020-03-09
  519. CREATE TABLE `library_contest` (
  520. `UserID` int NOT NULL,
  521. `TorrentID` int NOT NULL,
  522. `Points` int NOT NULL DEFAULT '0',
  523. PRIMARY KEY (`UserID`,`TorrentID`)
  524. ) ENGINE=InnoDB CHARSET=utf8mb4;
  525. -- 2020-03-09
  526. CREATE TABLE `locked_accounts` (
  527. `UserID` int unsigned NOT NULL,
  528. `Type` tinyint NOT NULL,
  529. PRIMARY KEY (`UserID`),
  530. CONSTRAINT `fk_user_id` FOREIGN KEY (`UserID`) REFERENCES `users_main` (`ID`) ON DELETE CASCADE
  531. ) ENGINE=InnoDB CHARSET=utf8mb4;
  532. -- 2020-03-09
  533. CREATE TABLE `log` (
  534. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  535. `Message` varchar(400) NOT NULL, -- todo: 400 vs. 500?
  536. `Time` datetime,
  537. PRIMARY KEY (`ID`),
  538. KEY `Time` (`Time`)
  539. ) ENGINE=InnoDB CHARSET=utf8mb4;
  540. -- 2020-03-09
  541. CREATE TABLE `misc` (
  542. `ID` int NOT NULL AUTO_INCREMENT, -- todo: 11 vs. 10?
  543. `Name` varchar(64) NOT NULL,
  544. `First` text,
  545. `Second` text,
  546. PRIMARY KEY (`ID`),
  547. UNIQUE KEY `Name` (`Name`),
  548. KEY `name_index` (`Name`)
  549. ) ENGINE=InnoDB CHARSET=utf8mb4;
  550. -- 2020-03-09
  551. CREATE TABLE `news` (
  552. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  553. `UserID` int unsigned NOT NULL,
  554. `Title` varchar(255) NOT NULL,
  555. `Body` text,
  556. `Time` datetime,
  557. PRIMARY KEY (`ID`),
  558. KEY `UserID` (`UserID`),
  559. KEY `Time` (`Time`)
  560. ) ENGINE=InnoDB CHARSET=utf8mb4;
  561. -- 2020-03-09
  562. CREATE TABLE `new_info_hashes` (
  563. `TorrentID` int NOT NULL, -- todo: 11 vs. 10?
  564. `InfoHash` binary(20) DEFAULT NULL,
  565. PRIMARY KEY (`TorrentID`),
  566. KEY `InfoHash` (`InfoHash`)
  567. ) ENGINE=InnoDB CHARSET=utf8mb4;
  568. -- 2020-03-09
  569. CREATE TABLE `ocelot_query_times` (
  570. `buffer` enum('users','torrents','snatches','peers') NOT NULL,
  571. `starttime` datetime,
  572. `ocelotinstance` datetime,
  573. `querylength` int NOT NULL, -- todo: 11 vs. 10?
  574. `timespent` int NOT NULL, -- todo
  575. UNIQUE KEY `starttime` (`starttime`)
  576. ) ENGINE=InnoDB CHARSET=utf8mb4;
  577. -- 2020-03-09
  578. CREATE TABLE `permissions` (
  579. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  580. `Level` int unsigned NOT NULL,
  581. `Name` varchar(25) NOT NULL,
  582. `Values` text,
  583. `DisplayStaff` enum('0','1') NOT NULL DEFAULT '0',
  584. `PermittedForums` varchar(150) NOT NULL DEFAULT '', -- todo: 150 vs. 255?
  585. `Secondary` tinyint NOT NULL DEFAULT '0',
  586. `Abbreviation` varchar(5) NOT NULL DEFAULT '',
  587. PRIMARY KEY (`ID`),
  588. UNIQUE KEY `Level` (`Level`),
  589. KEY `DisplayStaff` (`DisplayStaff`)
  590. ) ENGINE=InnoDB CHARSET=utf8mb4;
  591. -- 2020-03-09
  592. CREATE TABLE `pm_conversations` (
  593. `ID` int NOT NULL AUTO_INCREMENT, -- todo: 12 vs. 10?
  594. `Subject` varchar(255) DEFAULT NULL,
  595. PRIMARY KEY (`ID`)
  596. ) ENGINE=InnoDB CHARSET=utf8mb4;
  597. -- 2020-03-09
  598. CREATE TABLE `pm_conversations_users` (
  599. `UserID` int NOT NULL DEFAULT '0',
  600. `ConvID` int NOT NULL DEFAULT '0', -- todo: 12 vs. 10?
  601. `InInbox` enum('1','0') NOT NULL,
  602. `InSentbox` enum('1','0') NOT NULL,
  603. `SentDate` datetime,
  604. `ReceivedDate` datetime,
  605. `UnRead` enum('1','0') NOT NULL DEFAULT '1',
  606. `Sticky` enum('1','0') NOT NULL DEFAULT '0',
  607. `ForwardedTo` int NOT NULL DEFAULT '0', -- todo: 12 vs. 10?
  608. PRIMARY KEY (`UserID`,`ConvID`),
  609. KEY `InInbox` (`InInbox`),
  610. KEY `InSentbox` (`InSentbox`),
  611. KEY `ConvID` (`ConvID`),
  612. KEY `UserID` (`UserID`),
  613. KEY `SentDate` (`SentDate`),
  614. KEY `ReceivedDate` (`ReceivedDate`),
  615. KEY `Sticky` (`Sticky`),
  616. KEY `ForwardedTo` (`ForwardedTo`)
  617. ) ENGINE=InnoDB CHARSET=utf8mb4;
  618. -- 2020-03-09
  619. CREATE TABLE `pm_messages` (
  620. `ID` int NOT NULL AUTO_INCREMENT, -- todo: 12 vs. 10?
  621. `ConvID` int NOT NULL DEFAULT '0', -- todo
  622. `SentDate` datetime,
  623. `SenderID` int NOT NULL DEFAULT '0',
  624. `Body` text,
  625. PRIMARY KEY (`ID`),
  626. KEY `ConvID` (`ConvID`)
  627. ) ENGINE=InnoDB CHARSET=utf8mb4;
  628. -- Added back 2020-12-05
  629. CREATE TABLE `reports` (
  630. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  631. `UserID` int unsigned NOT NULL DEFAULT '0',
  632. `ThingID` int unsigned NOT NULL DEFAULT '0',
  633. `Type` varchar(30) DEFAULT NULL,
  634. `Comment` text,
  635. `ResolverID` int unsigned NOT NULL DEFAULT '0',
  636. `Status` enum('New','InProgress','Resolved') DEFAULT 'New',
  637. `ResolvedTime` datetime,
  638. `ReportedTime` datetime,
  639. `Reason` text,
  640. `ClaimerID` int unsigned NOT NULL DEFAULT '0',
  641. `Notes` text,
  642. PRIMARY KEY (`ID`),
  643. KEY `Status` (`Status`),
  644. KEY `Type` (`Type`),
  645. KEY `ResolvedTime` (`ResolvedTime`),
  646. KEY `ResolverID` (`ResolverID`)
  647. ) ENGINE=InnoDB CHARSET=utf8mb4;
  648. -- 2020-03-09
  649. CREATE TABLE `reportsv2` (
  650. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  651. `ReporterID` int unsigned NOT NULL DEFAULT '0',
  652. `TorrentID` int unsigned NOT NULL DEFAULT '0',
  653. `Type` varchar(25) DEFAULT '', -- todo: 25 vs. 50 vs. 255?
  654. `UserComment` text,
  655. `ResolverID` int unsigned NOT NULL DEFAULT '0',
  656. `Status` enum('New','InProgress','Resolved') DEFAULT 'New',
  657. `ReportedTime` datetime,
  658. `LastChangeTime` datetime,
  659. `ModComment` text,
  660. `Track` text,
  661. `Image` text,
  662. `ExtraID` text,
  663. `Link` text,
  664. `LogMessage` text,
  665. PRIMARY KEY (`ID`),
  666. KEY `Status` (`Status`),
  667. KEY `Type` (`Type`(1)),
  668. KEY `LastChangeTime` (`LastChangeTime`),
  669. KEY `TorrentID` (`TorrentID`),
  670. KEY `ResolverID` (`ResolverID`)
  671. ) ENGINE=InnoDB CHARSET=utf8mb4;
  672. -- 2020-03-09
  673. CREATE TABLE `reports_email_blacklist` (
  674. `ID` int NOT NULL AUTO_INCREMENT,
  675. `Type` tinyint NOT NULL DEFAULT '0',
  676. `UserID` int NOT NULL,
  677. `Time` datetime,
  678. `Checked` tinyint NOT NULL DEFAULT '0',
  679. `ResolverID` int DEFAULT '0',
  680. `Email` varchar(255) NOT NULL DEFAULT '',
  681. PRIMARY KEY (`ID`),
  682. KEY `Time` (`Time`),
  683. KEY `UserID` (`UserID`)
  684. ) ENGINE=InnoDB CHARSET=utf8mb4;
  685. -- 2020-03-09
  686. CREATE TABLE `requests` (
  687. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  688. `UserID` int unsigned NOT NULL DEFAULT '0',
  689. `TimeAdded` datetime,
  690. `LastVote` datetime DEFAULT NULL,
  691. `CategoryID` int NOT NULL,
  692. `Title` varchar(255) DEFAULT NULL,
  693. `Title2` varchar(255) DEFAULT NULL,
  694. `TitleJP` varchar(255) DEFAULT NULL,
  695. `Image` varchar(255) DEFAULT NULL,
  696. `Description` text,
  697. `CatalogueNumber` varchar(50) NOT NULL,
  698. `FillerID` int unsigned NOT NULL DEFAULT '0',
  699. `TorrentID` int unsigned NOT NULL DEFAULT '0',
  700. `TimeFilled` datetime,
  701. `Visible` binary(1) NOT NULL DEFAULT '1',
  702. `GroupID` int DEFAULT '0',
  703. PRIMARY KEY (`ID`),
  704. KEY `Userid` (`UserID`),
  705. KEY `Name` (`Title`),
  706. KEY `Filled` (`TorrentID`),
  707. KEY `FillerID` (`FillerID`),
  708. KEY `TimeAdded` (`TimeAdded`),
  709. KEY `TimeFilled` (`TimeFilled`),
  710. KEY `LastVote` (`LastVote`),
  711. KEY `GroupID` (`GroupID`),
  712. KEY `NameJP` (`TitleJP`)
  713. ) ENGINE=InnoDB CHARSET=utf8mb4;
  714. -- 2020-03-09
  715. CREATE TABLE `requests_artists` (
  716. `RequestID` int unsigned NOT NULL,
  717. `ArtistID` int NOT NULL,
  718. PRIMARY KEY (`RequestID`, `ArtistID`)
  719. ) ENGINE=InnoDB CHARSET=utf8mb4;
  720. -- 2020-03-09
  721. CREATE TABLE `requests_tags` (
  722. `TagID` int NOT NULL DEFAULT '0',
  723. `RequestID` int NOT NULL DEFAULT '0',
  724. PRIMARY KEY (`TagID`,`RequestID`),
  725. KEY `TagID` (`TagID`),
  726. KEY `RequestID` (`RequestID`)
  727. ) ENGINE=InnoDB CHARSET=utf8mb4;
  728. -- 2020-03-09
  729. CREATE TABLE `requests_votes` (
  730. `RequestID` int NOT NULL DEFAULT '0',
  731. `UserID` int NOT NULL DEFAULT '0',
  732. `Bounty` bigint unsigned NOT NULL,
  733. PRIMARY KEY (`RequestID`,`UserID`),
  734. KEY `RequestID` (`RequestID`),
  735. KEY `UserID` (`UserID`),
  736. KEY `Bounty` (`Bounty`)
  737. ) ENGINE=InnoDB CHARSET=utf8mb4;
  738. -- 2020-03-09
  739. CREATE TABLE `schedule` (
  740. `NextHour` int NOT NULL DEFAULT '0',
  741. `NextDay` int NOT NULL DEFAULT '0',
  742. `NextBiWeekly` int NOT NULL DEFAULT '0'
  743. ) ENGINE=InnoDB CHARSET=utf8mb4;
  744. -- 2020-03-09
  745. CREATE TABLE `shop_freeleeches` (
  746. `TorrentID` int NOT NULL,
  747. `ExpiryTime` datetime,
  748. PRIMARY KEY (`TorrentID`),
  749. KEY `ExpiryTime` (`ExpiryTime`)
  750. ) ENGINE=InnoDB CHARSET=utf8mb4;
  751. -- 2020-03-09
  752. CREATE TABLE `site_history` (
  753. `ID` int NOT NULL AUTO_INCREMENT,
  754. `Title` varchar(255) DEFAULT NULL,
  755. `Url` varchar(255) NOT NULL DEFAULT '',
  756. `Category` tinyint DEFAULT NULL,
  757. `SubCategory` tinyint DEFAULT NULL,
  758. `Tags` mediumtext,
  759. `AddedBy` int DEFAULT NULL,
  760. `Date` datetime DEFAULT NULL,
  761. `Body` mediumtext,
  762. PRIMARY KEY (`ID`)
  763. ) ENGINE=InnoDB CHARSET=utf8mb4;
  764. -- 2020-03-09
  765. CREATE TABLE `slaves` (
  766. `UserID` int NOT NULL DEFAULT '0', -- todo: 11 vs. 10?
  767. `OwnerID` int NOT NULL DEFAULT '0', -- todo
  768. PRIMARY KEY (`UserID`)
  769. ) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_swedish_ci;
  770. -- 2020-03-09
  771. CREATE TABLE `sphinx_a` (
  772. `gid` int DEFAULT NULL, -- todo: 11 vs. 10?
  773. `aname` text,
  774. KEY `gid` (`gid`)
  775. ) ENGINE=InnoDB CHARSET=utf8mb4;
  776. -- 2020-03-09
  777. CREATE TABLE `sphinx_delta` (
  778. `ID` int NOT NULL,
  779. `GroupID` int NOT NULL DEFAULT '0',
  780. `GroupName` varchar(255) DEFAULT NULL,
  781. `GroupTitle2` varchar(255) DEFAULT NULL,
  782. `GroupNameJP` varchar(255) DEFAULT NULL,
  783. `ArtistName` varchar(2048) DEFAULT NULL, -- todo: 2048 vs. 255?
  784. `TagList` varchar(728) DEFAULT NULL, -- todo: 728 vs. 500?
  785. `Year` int DEFAULT NULL,
  786. `CatalogueNumber` varchar(50) DEFAULT NULL,
  787. `CategoryID` tinyint DEFAULT NULL,
  788. `Time` int DEFAULT NULL,
  789. `Size` bigint DEFAULT NULL,
  790. `Snatched` int DEFAULT NULL,
  791. `Seeders` int DEFAULT NULL,
  792. `Leechers` int DEFAULT NULL,
  793. `FreeTorrent` tinyint DEFAULT NULL,
  794. `Media` varchar(255) DEFAULT NULL,
  795. `Container` varchar(255) DEFAULT NULL,
  796. `Codec` varchar(255) DEFAULT NULL,
  797. `Resolution` varchar(255) DEFAULT NULL,
  798. `Version` varchar(255) DEFAULT NULL,
  799. `Studio` varchar(100) DEFAULT NULL, -- todo: 100 vs. 255?
  800. `Series` varchar(100) DEFAULT NULL, -- todo
  801. `Censored` tinyint NOT NULL DEFAULT '1',
  802. `FileList` mediumtext,
  803. `Description` text,
  804. `VoteScore` float NOT NULL DEFAULT '0',
  805. `LastChanged` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  806. PRIMARY KEY (`ID`),
  807. KEY `GroupID` (`GroupID`),
  808. KEY `Size` (`Size`)
  809. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  810. -- 2020-03-09
  811. CREATE TABLE `sphinx_index_last_pos` (
  812. `Type` varchar(16) NOT NULL DEFAULT '', -- todo: 16 vs. 25 vs. 50?
  813. `ID` int DEFAULT NULL, -- todo: 11 vs. 10?
  814. PRIMARY KEY (`Type`)
  815. ) ENGINE=InnoDB CHARSET=utf8mb4;
  816. -- 2020-03-09
  817. CREATE TABLE `sphinx_requests` (
  818. `ID` int unsigned NOT NULL,
  819. `UserID` int unsigned NOT NULL DEFAULT '0',
  820. `TimeAdded` int unsigned NOT NULL, -- todo: 12 vs. 10?
  821. `LastVote` int unsigned NOT NULL, -- todo
  822. `CategoryID` int NOT NULL,
  823. `Title` varchar(255) DEFAULT NULL,
  824. `Title2` varchar(255) DEFAULT NULL,
  825. `TitleJP` varchar(255) DEFAULT NULL,
  826. `Year` int DEFAULT NULL,
  827. `ArtistList` varchar(2048) DEFAULT NULL, -- todo: 2048 vs. 255?
  828. `CatalogueNumber` varchar(50) NOT NULL,
  829. `FillerID` int unsigned NOT NULL DEFAULT '0',
  830. `TorrentID` int unsigned NOT NULL DEFAULT '0',
  831. `TimeFilled` int unsigned NOT NULL, -- todo: 12 vs. 10?
  832. `Visible` binary(1) NOT NULL DEFAULT '1',
  833. `Bounty` bigint unsigned NOT NULL DEFAULT '0',
  834. `Votes` int unsigned NOT NULL DEFAULT '0',
  835. PRIMARY KEY (`ID`),
  836. KEY `Userid` (`UserID`),
  837. KEY `Name` (`Title`),
  838. KEY `Filled` (`TorrentID`),
  839. KEY `FillerID` (`FillerID`),
  840. KEY `TimeAdded` (`TimeAdded`),
  841. KEY `Year` (`Year`),
  842. KEY `TimeFilled` (`TimeFilled`),
  843. KEY `LastVote` (`LastVote`)
  844. ) ENGINE=InnoDB CHARSET=utf8mb4;
  845. -- 2020-03-09
  846. CREATE TABLE `sphinx_requests_delta` (
  847. `ID` int unsigned NOT NULL,
  848. `UserID` int unsigned NOT NULL DEFAULT '0',
  849. `TimeAdded` int unsigned DEFAULT NULL, -- todo: 12 vs. 10?
  850. `LastVote` int unsigned DEFAULT NULL, -- todo
  851. `CategoryID` tinyint DEFAULT NULL,
  852. `Title` varchar(255) DEFAULT NULL,
  853. `Title2` varchar(255) DEFAULT NULL,
  854. `TitleJP` varchar(255) DEFAULT NULL,
  855. `TagList` varchar(728) NOT NULL DEFAULT '', -- todo: 728 vs. 500?
  856. `ArtistList` varchar(2048) DEFAULT NULL, -- todo: 2048 vs. 255?
  857. `CatalogueNumber` varchar(50) DEFAULT NULL,
  858. `FillerID` int unsigned NOT NULL DEFAULT '0',
  859. `TorrentID` int unsigned NOT NULL DEFAULT '0',
  860. `TimeFilled` int unsigned DEFAULT NULL, -- todo: 12 vs. 10?
  861. `Visible` binary(1) NOT NULL DEFAULT '1',
  862. `Bounty` bigint unsigned NOT NULL DEFAULT '0',
  863. `Votes` int unsigned NOT NULL DEFAULT '0',
  864. PRIMARY KEY (`ID`),
  865. KEY `Userid` (`UserID`),
  866. KEY `Name` (`Title`),
  867. KEY `Filled` (`TorrentID`),
  868. KEY `FillerID` (`FillerID`),
  869. KEY `TimeAdded` (`TimeAdded`),
  870. KEY `TimeFilled` (`TimeFilled`),
  871. KEY `LastVote` (`LastVote`)
  872. ) ENGINE=InnoDB CHARSET=utf8mb4;
  873. -- 2020-03-09
  874. CREATE TABLE `sphinx_t` (
  875. `id` int NOT NULL, -- todo: 11 vs. 10?
  876. `gid` int NOT NULL, -- todo
  877. `uid` int NOT NULL, -- todo
  878. `size` bigint NOT NULL,
  879. `snatched` int NOT NULL, -- todo: 11 vs. 10?
  880. `seeders` int NOT NULL, -- todo
  881. `leechers` int NOT NULL, -- todo
  882. `time` int NOT NULL, -- todo
  883. `freetorrent` tinyint NOT NULL,
  884. `media` varchar(25) NOT NULL,
  885. `container` varchar(25) NOT NULL,
  886. `resolution` varchar(25) NOT NULL,
  887. `codec` varchar(25) NOT NULL,
  888. `Version` varchar(25) NOT NULL,
  889. `filelist` mediumtext,
  890. `description` text,
  891. `censored` tinyint NOT NULL,
  892. PRIMARY KEY (`id`),
  893. KEY `gid` (`gid`)
  894. ) ENGINE=InnoDB CHARSET=utf8mb4;
  895. -- 2020-03-09
  896. CREATE TABLE `sphinx_tg` (
  897. `id` int NOT NULL, -- todo: 11 vs. 10?
  898. `name` varchar(255) DEFAULT NULL,
  899. `Title2` varchar(255) DEFAULT NULL,
  900. `namejp` varchar(255) DEFAULT NULL,
  901. `tags` varchar(500) DEFAULT NULL,
  902. `year` smallint DEFAULT NULL, -- todo: 6 vs. 4?
  903. `cnumber` varchar(50) DEFAULT NULL,
  904. `studio` varchar(255) DEFAULT NULL,
  905. `series` varchar(255) DEFAULT NULL,
  906. `catid` smallint DEFAULT NULL,
  907. `dlsid` varchar(15) NOT NULL, -- todo: 15 vs. 25 vs. 50?
  908. PRIMARY KEY (`id`)
  909. ) ENGINE=InnoDB CHARSET=utf8mb4;
  910. -- 2020-03-09
  911. CREATE TABLE `staff_blog` (
  912. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  913. `UserID` int unsigned NOT NULL,
  914. `Title` varchar(255) NOT NULL,
  915. `Body` text,
  916. `Time` datetime,
  917. PRIMARY KEY (`ID`),
  918. KEY `UserID` (`UserID`),
  919. KEY `Time` (`Time`)
  920. ) ENGINE=InnoDB CHARSET=utf8mb4;
  921. -- 2020-03-09
  922. CREATE TABLE `staff_blog_visits` (
  923. `UserID` int unsigned NOT NULL,
  924. `Time` datetime,
  925. UNIQUE KEY `UserID` (`UserID`),
  926. CONSTRAINT `staff_blog_visits_ibfk_1` FOREIGN KEY (`UserID`) REFERENCES `users_main` (`ID`) ON DELETE CASCADE
  927. ) ENGINE=InnoDB CHARSET=utf8mb4;
  928. -- 2020-03-09
  929. CREATE TABLE `staff_pm_conversations` (
  930. `ID` int NOT NULL AUTO_INCREMENT, -- todo: 11 vs. 10?
  931. `Subject` text,
  932. `UserID` int DEFAULT NULL, -- todo: 11 vs. 10?
  933. `Status` enum('Open','Unanswered','Resolved') DEFAULT NULL,
  934. `Level` int DEFAULT NULL, -- todo: 11 vs. 10?
  935. `AssignedToUser` int DEFAULT NULL, -- todo
  936. `Date` datetime DEFAULT NULL,
  937. `Unread` tinyint DEFAULT NULL,
  938. `ResolverID` int DEFAULT NULL, -- todo: 11 vs. 10?
  939. PRIMARY KEY (`ID`),
  940. KEY `StatusAssigned` (`Status`,`AssignedToUser`),
  941. KEY `StatusLevel` (`Status`,`Level`)
  942. ) ENGINE=InnoDB CHARSET=utf8mb4;
  943. -- 2020-03-09
  944. CREATE TABLE `staff_pm_messages` (
  945. `ID` int NOT NULL AUTO_INCREMENT, -- todo: 11 vs. 10?
  946. `UserID` int DEFAULT NULL, -- todo
  947. `SentDate` datetime DEFAULT NULL,
  948. `Message` text,
  949. `ConvID` int DEFAULT NULL, -- todo: 11 vs. 10?
  950. PRIMARY KEY (`ID`)
  951. ) ENGINE=InnoDB CHARSET=utf8mb4;
  952. -- 2020-03-09
  953. CREATE TABLE `staff_pm_responses` (
  954. `ID` int NOT NULL AUTO_INCREMENT, -- todo: 11 vs. 10?
  955. `Message` text,
  956. `Name` text,
  957. PRIMARY KEY (`ID`)
  958. ) ENGINE=InnoDB CHARSET=utf8mb4;
  959. -- 2020-03-09
  960. CREATE TABLE `stylesheets` (
  961. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  962. `Name` varchar(255) NOT NULL,
  963. `Description` varchar(255) NOT NULL,
  964. `Default` enum('0','1') NOT NULL DEFAULT '0',
  965. `Additions` text,
  966. `Color` varchar(7), -- #deadbe
  967. PRIMARY KEY (`ID`)
  968. ) ENGINE=InnoDB CHARSET=utf8mb4;
  969. -- todo: Start again here
  970. CREATE TABLE `tag_aliases` (
  971. `ID` int NOT NULL AUTO_INCREMENT,
  972. `BadTag` varchar(255) DEFAULT NULL,
  973. `AliasTag` varchar(255) DEFAULT NULL,
  974. PRIMARY KEY (`ID`),
  975. KEY `BadTag` (`BadTag`),
  976. KEY `AliasTag` (`AliasTag`)
  977. ) ENGINE=InnoDB CHARSET=utf8mb4;
  978. CREATE TABLE `tags` (
  979. `ID` int NOT NULL AUTO_INCREMENT,
  980. `Name` varchar(100) DEFAULT NULL,
  981. `TagType` enum('genre','other') NOT NULL DEFAULT 'other',
  982. `Uses` int NOT NULL DEFAULT '1',
  983. `UserID` int DEFAULT NULL,
  984. PRIMARY KEY (`ID`),
  985. UNIQUE KEY `Name_2` (`Name`),
  986. KEY `TagType` (`TagType`),
  987. KEY `Uses` (`Uses`),
  988. KEY `UserID` (`UserID`)
  989. ) ENGINE=InnoDB CHARSET=utf8mb4;
  990. CREATE TABLE `top10_history` (
  991. `ID` int NOT NULL AUTO_INCREMENT,
  992. `Date` datetime,
  993. `Type` enum('Daily','Weekly') DEFAULT NULL,
  994. PRIMARY KEY (`ID`)
  995. ) ENGINE=InnoDB CHARSET=utf8mb4;
  996. CREATE TABLE `top10_history_torrents` (
  997. `HistoryID` int NOT NULL DEFAULT '0',
  998. `Rank` tinyint NOT NULL DEFAULT '0',
  999. `TorrentID` int NOT NULL DEFAULT '0',
  1000. `TitleString` varchar(150) NOT NULL DEFAULT '',
  1001. `TagString` varchar(100) NOT NULL DEFAULT ''
  1002. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1003. CREATE TABLE `top_snatchers` (
  1004. `UserID` int unsigned NOT NULL,
  1005. PRIMARY KEY (`UserID`)
  1006. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1007. CREATE TABLE `torrents` (
  1008. `ID` int NOT NULL AUTO_INCREMENT,
  1009. `GroupID` int NOT NULL DEFAULT '0',
  1010. `UserID` int DEFAULT NULL,
  1011. `Media` varchar(25) DEFAULT NULL,
  1012. `Container` varchar(25) DEFAULT NULL,
  1013. `Codec` varchar(25) DEFAULT NULL,
  1014. `Resolution` varchar(25) DEFAULT NULL,
  1015. `Version` varchar(10) DEFAULT NULL,
  1016. `Censored` tinyint NOT NULL DEFAULT '1',
  1017. `Anonymous` tinyint NOT NULL DEFAULT '0',
  1018. `info_hash` blob NOT NULL,
  1019. `FileCount` int NOT NULL DEFAULT '0',
  1020. `FileList` mediumtext,
  1021. `FilePath` varchar(255) NOT NULL DEFAULT '',
  1022. `Size` bigint NOT NULL DEFAULT '0',
  1023. `Leechers` int NOT NULL DEFAULT '0',
  1024. `Seeders` int NOT NULL DEFAULT '0',
  1025. `last_action` datetime,
  1026. `FreeTorrent` enum('0','1','2') NOT NULL DEFAULT '0',
  1027. `FreeLeechType` enum('0','1','2','3','4') NOT NULL DEFAULT '0',
  1028. `Time` datetime,
  1029. `Description` text,
  1030. `Snatched` int unsigned NOT NULL DEFAULT '0',
  1031. `balance` bigint NOT NULL DEFAULT '0',
  1032. `LastReseedRequest` datetime,
  1033. `Archive` varchar(10) NOT NULL DEFAULT '',
  1034. PRIMARY KEY (`ID`),
  1035. UNIQUE KEY `InfoHash` (`info_hash`(40)),
  1036. KEY `GroupID` (`GroupID`),
  1037. KEY `UserID` (`UserID`),
  1038. KEY `Media` (`Media`),
  1039. KEY `Container` (`Container`),
  1040. KEY `Codec` (`Codec`),
  1041. KEY `Resolution` (`Resolution`),
  1042. KEY `Version` (`Version`),
  1043. KEY `FileCount` (`FileCount`),
  1044. KEY `Size` (`Size`),
  1045. KEY `Seeders` (`Seeders`),
  1046. KEY `Leechers` (`Leechers`),
  1047. KEY `last_action` (`last_action`),
  1048. KEY `Time` (`Time`),
  1049. KEY `FreeTorrent` (`FreeTorrent`)
  1050. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1051. CREATE TABLE `torrents_artists` (
  1052. `GroupID` int NOT NULL,
  1053. `ArtistID` int NOT NULL,
  1054. `UserID` int unsigned NOT NULL DEFAULT '0',
  1055. PRIMARY KEY (`GroupID`,`ArtistID`),
  1056. KEY `ArtistID` (`ArtistID`),
  1057. KEY `GroupID` (`GroupID`),
  1058. KEY `UserID` (`UserID`)
  1059. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1060. CREATE TABLE `torrents_bad_files` (
  1061. `TorrentID` int NOT NULL DEFAULT '0',
  1062. `UserID` int NOT NULL DEFAULT '0',
  1063. `TimeAdded` datetime
  1064. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1065. CREATE TABLE `torrents_bad_folders` (
  1066. `TorrentID` int NOT NULL,
  1067. `UserID` int NOT NULL,
  1068. `TimeAdded` datetime,
  1069. PRIMARY KEY (`TorrentID`)
  1070. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1071. CREATE TABLE `torrents_bad_tags` (
  1072. `TorrentID` int NOT NULL DEFAULT '0',
  1073. `UserID` int NOT NULL DEFAULT '0',
  1074. `TimeAdded` datetime,
  1075. KEY `TimeAdded` (`TimeAdded`)
  1076. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1077. CREATE TABLE `torrents_group` (
  1078. `ID` int NOT NULL AUTO_INCREMENT,
  1079. `CategoryID` int DEFAULT NULL,
  1080. `Name` varchar(255) DEFAULT NULL,
  1081. `Title2` varchar(255) DEFAULT NULL,
  1082. `NameJP` varchar(255) DEFAULT NULL,
  1083. `Year` int DEFAULT NULL,
  1084. `Studio` varchar(100) NOT NULL DEFAULT '',
  1085. `Series` varchar(100) NOT NULL DEFAULT '',
  1086. `CatalogueNumber` varchar(50) NOT NULL DEFAULT '',
  1087. `TagList` varchar(500) NOT NULL DEFAULT '',
  1088. `Time` datetime,
  1089. `RevisionID` int DEFAULT NULL,
  1090. `WikiBody` text,
  1091. `WikiImage` varchar(255) NOT NULL,
  1092. PRIMARY KEY (`ID`),
  1093. KEY `CategoryID` (`CategoryID`),
  1094. KEY `Name` (`Name`(255)),
  1095. KEY `Year` (`Year`),
  1096. KEY `Time` (`Time`),
  1097. KEY `RevisionID` (`RevisionID`)
  1098. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1099. CREATE TABLE `torrents_logs_new` (
  1100. `LogID` int NOT NULL AUTO_INCREMENT,
  1101. `TorrentID` int NOT NULL DEFAULT '0',
  1102. `Log` mediumtext,
  1103. `Details` mediumtext,
  1104. `Score` int NOT NULL,
  1105. `Revision` int NOT NULL,
  1106. `Adjusted` enum('1','0') NOT NULL DEFAULT '0',
  1107. `AdjustedBy` int NOT NULL DEFAULT '0',
  1108. `NotEnglish` enum('1','0') NOT NULL DEFAULT '0',
  1109. `AdjustmentReason` text,
  1110. PRIMARY KEY (`LogID`),
  1111. KEY `TorrentID` (`TorrentID`)
  1112. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1113. CREATE TABLE `torrents_peerlists` (
  1114. `TorrentID` int NOT NULL,
  1115. `GroupID` int DEFAULT NULL,
  1116. `Seeders` int DEFAULT NULL,
  1117. `Leechers` int DEFAULT NULL,
  1118. `Snatches` int DEFAULT NULL,
  1119. PRIMARY KEY (`TorrentID`),
  1120. KEY `GroupID` (`GroupID`),
  1121. KEY `Stats` (`TorrentID`,`Seeders`,`Leechers`,`Snatches`)
  1122. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1123. CREATE TABLE `torrents_peerlists_compare` (
  1124. `TorrentID` int NOT NULL,
  1125. `GroupID` int DEFAULT NULL,
  1126. `Seeders` int DEFAULT NULL,
  1127. `Leechers` int DEFAULT NULL,
  1128. `Snatches` int DEFAULT NULL,
  1129. PRIMARY KEY (`TorrentID`),
  1130. KEY `GroupID` (`GroupID`),
  1131. KEY `Stats` (`TorrentID`,`Seeders`,`Leechers`,`Snatches`)
  1132. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1133. CREATE TABLE `torrents_recommended` (
  1134. `GroupID` int NOT NULL,
  1135. `UserID` int NOT NULL,
  1136. `Time` datetime,
  1137. PRIMARY KEY (`GroupID`),
  1138. KEY `Time` (`Time`)
  1139. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1140. CREATE TABLE `torrents_screenshots` (
  1141. `ID` int NOT NULL AUTO_INCREMENT,
  1142. `TorrentID` int NOT NULL,
  1143. `UserID` int NOT NULL,
  1144. `Time` datetime,
  1145. `URI` varchar(255) NOT NULL,
  1146. PRIMARY KEY (`ID`,`GroupID`,`URI`)
  1147. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1148. CREATE TABLE `torrents_mirrors` (
  1149. `ID` int NOT NULL AUTO_INCREMENT,
  1150. `GroupID` int NOT NULL,
  1151. `UserID` int NOT NULL,
  1152. `Time` datetime,
  1153. `URI` varchar(255) NOT NULL,
  1154. PRIMARY KEY (`ID`,`GroupID`,`URI`)
  1155. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1156. CREATE TABLE `torrents_tags` (
  1157. `TagID` int NOT NULL DEFAULT '0',
  1158. `GroupID` int NOT NULL DEFAULT '0',
  1159. `UserID` int DEFAULT NULL,
  1160. PRIMARY KEY (`TagID`,`GroupID`),
  1161. KEY `TagID` (`TagID`),
  1162. KEY `GroupID` (`GroupID`),
  1163. KEY `UserID` (`UserID`)
  1164. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1165. CREATE TABLE `u2f` (
  1166. `UserID` int NOT NULL,
  1167. `KeyHandle` varchar(255) NOT NULL,
  1168. `PublicKey` varchar(255) NOT NULL,
  1169. `Certificate` text,
  1170. `Counter` int NOT NULL DEFAULT '-1',
  1171. `Valid` enum('0','1') NOT NULL DEFAULT '1',
  1172. PRIMARY KEY (`UserID`,`KeyHandle`)
  1173. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1174. CREATE TABLE `users_badges` (
  1175. `UserID` int NOT NULL,
  1176. `BadgeID` int NOT NULL,
  1177. `Displayed` tinyint DEFAULT '0',
  1178. PRIMARY KEY (`UserID`,`BadgeID`)
  1179. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1180. CREATE TABLE `users_collage_subs` (
  1181. `UserID` int NOT NULL,
  1182. `CollageID` int NOT NULL,
  1183. `LastVisit` datetime DEFAULT NULL,
  1184. PRIMARY KEY (`UserID`,`CollageID`),
  1185. KEY `CollageID` (`CollageID`)
  1186. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1187. CREATE TABLE `users_comments_last_read` (
  1188. `UserID` int NOT NULL,
  1189. `Page` enum('artist','collages','requests','torrents') NOT NULL,
  1190. `PageID` int NOT NULL,
  1191. `PostID` int NOT NULL,
  1192. PRIMARY KEY (`UserID`,`Page`,`PageID`),
  1193. KEY `Page` (`Page`,`PageID`)
  1194. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1195. CREATE TABLE `users_donor_ranks` (
  1196. `UserID` int NOT NULL DEFAULT '0',
  1197. `Rank` tinyint NOT NULL DEFAULT '0',
  1198. `DonationTime` datetime DEFAULT NULL,
  1199. `Hidden` tinyint NOT NULL DEFAULT '0',
  1200. `TotalRank` int NOT NULL DEFAULT '0',
  1201. `SpecialRank` tinyint DEFAULT '0',
  1202. `InvitesRecievedRank` tinyint DEFAULT '0',
  1203. `RankExpirationTime` datetime DEFAULT NULL,
  1204. PRIMARY KEY (`UserID`),
  1205. KEY `DonationTime` (`DonationTime`),
  1206. KEY `SpecialRank` (`SpecialRank`),
  1207. KEY `Rank` (`Rank`),
  1208. KEY `TotalRank` (`TotalRank`)
  1209. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1210. CREATE TABLE `users_downloads` (
  1211. `UserID` int NOT NULL,
  1212. `TorrentID` int NOT NULL,
  1213. `Time` datetime,
  1214. PRIMARY KEY (`UserID`,`TorrentID`,`Time`),
  1215. KEY `TorrentID` (`TorrentID`),
  1216. KEY `UserID` (`UserID`)
  1217. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1218. CREATE TABLE `users_dupes` (
  1219. `GroupID` int unsigned NOT NULL,
  1220. `UserID` int unsigned NOT NULL,
  1221. UNIQUE KEY `UserID` (`UserID`),
  1222. KEY `GroupID` (`GroupID`),
  1223. CONSTRAINT `users_dupes_ibfk_1` FOREIGN KEY (`UserID`) REFERENCES `users_main` (`ID`) ON DELETE CASCADE,
  1224. CONSTRAINT `users_dupes_ibfk_2` FOREIGN KEY (`GroupID`) REFERENCES `dupe_groups` (`ID`) ON DELETE CASCADE
  1225. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1226. CREATE TABLE `users_enable_recommendations` (
  1227. `ID` int NOT NULL,
  1228. `Enable` tinyint DEFAULT NULL,
  1229. PRIMARY KEY (`ID`),
  1230. KEY `Enable` (`Enable`)
  1231. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1232. CREATE TABLE `users_enable_requests` (
  1233. `ID` int NOT NULL AUTO_INCREMENT,
  1234. `UserID` int unsigned NOT NULL,
  1235. `Email` varchar(255) NOT NULL,
  1236. `IP` varchar(255) NOT NULL DEFAULT 'mIbUEUEmV93bF6C5i6cITAlcw3H7TKcaPzZZIMIZQNQ=',
  1237. `UserAgent` text,
  1238. `Timestamp` datetime,
  1239. `HandledTimestamp` datetime DEFAULT NULL,
  1240. `Token` char(32) DEFAULT NULL,
  1241. `CheckedBy` int unsigned DEFAULT NULL,
  1242. `Outcome` tinyint DEFAULT NULL COMMENT '1 for approved, 2 for denied, 3 for discarded',
  1243. PRIMARY KEY (`ID`),
  1244. KEY `UserId` (`UserID`),
  1245. KEY `CheckedBy` (`CheckedBy`),
  1246. CONSTRAINT `users_enable_requests_ibfk_1` FOREIGN KEY (`UserID`) REFERENCES `users_main` (`ID`),
  1247. CONSTRAINT `users_enable_requests_ibfk_2` FOREIGN KEY (`CheckedBy`) REFERENCES `users_main` (`ID`)
  1248. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1249. CREATE TABLE `users_freeleeches` (
  1250. `UserID` int NOT NULL,
  1251. `TorrentID` int NOT NULL,
  1252. `Time` datetime,
  1253. `Expired` tinyint NOT NULL DEFAULT '0',
  1254. `Downloaded` bigint NOT NULL DEFAULT '0',
  1255. `Uses` int NOT NULL DEFAULT '1',
  1256. PRIMARY KEY (`UserID`,`TorrentID`),
  1257. KEY `Time` (`Time`),
  1258. KEY `Expired_Time` (`Expired`,`Time`)
  1259. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1260. CREATE TABLE `users_geodistribution` (
  1261. `Code` varchar(2) NOT NULL,
  1262. `Users` int NOT NULL
  1263. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1264. CREATE TABLE `users_history_emails` (
  1265. `UserID` int NOT NULL,
  1266. `Email` varchar(255) DEFAULT NULL,
  1267. `Time` datetime DEFAULT NULL,
  1268. `IP` varchar(90) DEFAULT NULL,
  1269. KEY `UserID` (`UserID`)
  1270. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1271. CREATE TABLE `users_history_ips` (
  1272. `UserID` int NOT NULL,
  1273. `IP` varchar(90) NOT NULL DEFAULT '0.0.0.0',
  1274. `StartTime` datetime,
  1275. `EndTime` datetime DEFAULT NULL,
  1276. PRIMARY KEY (`UserID`,`IP`,`StartTime`),
  1277. KEY `UserID` (`UserID`),
  1278. KEY `IP` (`IP`),
  1279. KEY `StartTime` (`StartTime`),
  1280. KEY `EndTime` (`EndTime`)
  1281. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1282. CREATE TABLE `users_history_passkeys` (
  1283. `UserID` int NOT NULL,
  1284. `OldPassKey` varchar(32) DEFAULT NULL,
  1285. `NewPassKey` varchar(32) DEFAULT NULL,
  1286. `ChangeTime` datetime DEFAULT NULL,
  1287. `ChangerIP` varchar(90) DEFAULT NULL
  1288. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1289. CREATE TABLE `users_history_passwords` (
  1290. `UserID` int NOT NULL,
  1291. `ChangeTime` datetime DEFAULT NULL,
  1292. `ChangerIP` varchar(90) DEFAULT NULL,
  1293. KEY `User_Time` (`UserID`,`ChangeTime`)
  1294. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1295. CREATE TABLE `users_info` (
  1296. `UserID` int unsigned NOT NULL,
  1297. `StyleID` int unsigned NOT NULL,
  1298. `StyleURL` varchar(255) DEFAULT NULL,
  1299. `Info` text,
  1300. `Avatar` varchar(255),
  1301. `AdminComment` text,
  1302. `SiteOptions` text,
  1303. `ViewAvatars` enum('0','1') NOT NULL DEFAULT '1',
  1304. `Donor` enum('0','1') NOT NULL DEFAULT '0',
  1305. `Artist` enum('0','1') NOT NULL DEFAULT '0',
  1306. `Warned` datetime,
  1307. `SupportFor` varchar(255),
  1308. `TorrentGrouping` enum('0','1','2') NOT NULL COMMENT '0=Open,1=Closed,2=Off',
  1309. `ShowTags` enum('0','1') NOT NULL DEFAULT '1',
  1310. `NotifyOnQuote` enum('0','1','2') NOT NULL DEFAULT '0',
  1311. `AuthKey` varchar(32) NOT NULL DEFAULT '',
  1312. `ResetKey` varchar(32) NOT NULL DEFAULT '',
  1313. `ResetExpires` datetime,
  1314. `JoinDate` datetime,
  1315. `Inviter` int DEFAULT NULL,
  1316. `BitcoinAddress` varchar(34) DEFAULT NULL,
  1317. `WarnedTimes` int NOT NULL DEFAULT '0',
  1318. `DisableAvatar` enum('0','1') NOT NULL DEFAULT '0',
  1319. `DisableInvites` enum('0','1') NOT NULL DEFAULT '0',
  1320. `DisablePosting` enum('0','1') NOT NULL DEFAULT '0',
  1321. `DisableForums` enum('0','1') NOT NULL DEFAULT '0',
  1322. `DisableIRC` enum('0','1') DEFAULT '0',
  1323. `DisableTagging` enum('0','1') NOT NULL DEFAULT '0',
  1324. `DisableUpload` enum('0','1') NOT NULL DEFAULT '0',
  1325. `DisableWiki` enum('0','1') NOT NULL DEFAULT '0',
  1326. `DisablePM` enum('0','1') NOT NULL DEFAULT '0',
  1327. `DisablePoints` enum('0','1') NOT NULL DEFAULT '0',
  1328. `DisablePromotion` enum('0','1') NOT NULL DEFAULT '0',
  1329. `DisableRequests` enum('0','1') NOT NULL DEFAULT '0',
  1330. `RatioWatchEnds` datetime,
  1331. `RatioWatchDownload` bigint unsigned NOT NULL DEFAULT '0',
  1332. `RatioWatchTimes` tinyint unsigned NOT NULL DEFAULT '0',
  1333. `BanDate` datetime,
  1334. `BanReason` enum('0','1','2','3','4') NOT NULL DEFAULT '0',
  1335. `CatchupTime` datetime DEFAULT NULL,
  1336. `LastReadNews` int NOT NULL DEFAULT '0',
  1337. `HideCountryChanges` enum('0','1') NOT NULL DEFAULT '0',
  1338. `RestrictedForums` varchar(150) NOT NULL DEFAULT '',
  1339. `PermittedForums` varchar(150) NOT NULL DEFAULT '',
  1340. `UnseededAlerts` enum('0','1') NOT NULL DEFAULT '0',
  1341. `LastReadBlog` int NOT NULL DEFAULT '0',
  1342. `InfoTitle` varchar(255) NOT NULL DEFAULT '',
  1343. UNIQUE KEY `UserID` (`UserID`),
  1344. KEY `SupportFor` (`SupportFor`),
  1345. KEY `DisableInvites` (`DisableInvites`),
  1346. KEY `Donor` (`Donor`),
  1347. KEY `Warned` (`Warned`),
  1348. KEY `JoinDate` (`JoinDate`),
  1349. KEY `Inviter` (`Inviter`),
  1350. KEY `RatioWatchEnds` (`RatioWatchEnds`),
  1351. KEY `RatioWatchDownload` (`RatioWatchDownload`),
  1352. KEY `BitcoinAddress` (`BitcoinAddress`(4)),
  1353. KEY `AuthKey` (`AuthKey`),
  1354. KEY `ResetKey` (`ResetKey`)
  1355. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1356. CREATE TABLE `users_levels` (
  1357. `UserID` int unsigned NOT NULL,
  1358. `PermissionID` int unsigned NOT NULL,
  1359. PRIMARY KEY (`UserID`,`PermissionID`),
  1360. KEY `PermissionID` (`PermissionID`)
  1361. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1362. CREATE TABLE `users_main` (
  1363. `ID` int unsigned NOT NULL AUTO_INCREMENT,
  1364. `Username` varchar(25) NOT NULL DEFAULT '',
  1365. `Email` varchar(255) NOT NULL DEFAULT '',
  1366. `PassHash` varchar(60) NOT NULL DEFAULT '',
  1367. `TwoFactor` varchar(255) DEFAULT NULL,
  1368. `PublicKey` text,
  1369. `IRCKey` char(32) DEFAULT NULL,
  1370. `LastLogin` datetime,
  1371. `LastAccess` datetime,
  1372. `IP` varchar(90) NOT NULL DEFAULT '0.0.0.0',
  1373. `Class` tinyint NOT NULL DEFAULT '5',
  1374. `Uploaded` bigint unsigned NOT NULL DEFAULT '0',
  1375. `Downloaded` bigint unsigned NOT NULL DEFAULT '0',
  1376. `Title` text,
  1377. `Enabled` enum('0','1','2') NOT NULL DEFAULT '0',
  1378. `Paranoia` text,
  1379. `Visible` enum('1','0') NOT NULL DEFAULT '1',
  1380. `Invites` int unsigned NOT NULL DEFAULT '0',
  1381. `PermissionID` int unsigned NOT NULL DEFAULT '0',
  1382. `CustomPermissions` text,
  1383. `can_leech` tinyint NOT NULL DEFAULT '1',
  1384. `torrent_pass` char(32) NOT NULL DEFAULT '',
  1385. `RequiredRatio` double(10,8) NOT NULL DEFAULT '0.00000000',
  1386. `RequiredRatioWork` double(10,8) NOT NULL DEFAULT '0.00000000',
  1387. `ipcc` varchar(2) NOT NULL DEFAULT '',
  1388. `FLTokens` int NOT NULL DEFAULT '0',
  1389. `BonusPoints` int unsigned NOT NULL DEFAULT '0',
  1390. `IRCLines` int unsigned NOT NULL DEFAULT '0',
  1391. `HnR` int NOT NULL DEFAULT '0',
  1392. PRIMARY KEY (`ID`),
  1393. UNIQUE KEY `Username` (`Username`),
  1394. KEY `Email` (`Email`),
  1395. KEY `PassHash` (`PassHash`),
  1396. KEY `LastAccess` (`LastAccess`),
  1397. KEY `IP` (`IP`),
  1398. KEY `Class` (`Class`),
  1399. KEY `Uploaded` (`Uploaded`),
  1400. KEY `Downloaded` (`Downloaded`),
  1401. KEY `Enabled` (`Enabled`),
  1402. KEY `Invites` (`Invites`),
  1403. KEY `torrent_pass` (`torrent_pass`),
  1404. KEY `RequiredRatio` (`RequiredRatio`),
  1405. KEY `cc_index` (`ipcc`),
  1406. KEY `PermissionID` (`PermissionID`)
  1407. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1408. CREATE TABLE `users_notifications_settings` (
  1409. `UserID` int NOT NULL DEFAULT '0',
  1410. `Inbox` tinyint DEFAULT '1',
  1411. `StaffPM` tinyint DEFAULT '1',
  1412. `News` tinyint DEFAULT '1',
  1413. `Blog` tinyint DEFAULT '1',
  1414. `Torrents` tinyint DEFAULT '1',
  1415. `Collages` tinyint DEFAULT '1',
  1416. `Quotes` tinyint DEFAULT '1',
  1417. `Subscriptions` tinyint DEFAULT '1',
  1418. `SiteAlerts` tinyint DEFAULT '1',
  1419. `RequestAlerts` tinyint DEFAULT '1',
  1420. `CollageAlerts` tinyint DEFAULT '1',
  1421. `TorrentAlerts` tinyint DEFAULT '1',
  1422. `ForumAlerts` tinyint DEFAULT '1',
  1423. PRIMARY KEY (`UserID`)
  1424. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1425. CREATE TABLE `users_notify_filters` (
  1426. `ID` int NOT NULL AUTO_INCREMENT,
  1427. `UserID` int NOT NULL,
  1428. `Label` varchar(128) NOT NULL DEFAULT '',
  1429. `Artists` mediumtext,
  1430. `RecordLabels` mediumtext,
  1431. `Users` mediumtext,
  1432. `Tags` varchar(500) NOT NULL DEFAULT '',
  1433. `NotTags` varchar(500) NOT NULL DEFAULT '',
  1434. `Categories` varchar(500) NOT NULL DEFAULT '',
  1435. `Formats` varchar(500) NOT NULL DEFAULT '',
  1436. `Encodings` varchar(500) NOT NULL DEFAULT '',
  1437. `Media` varchar(500) NOT NULL DEFAULT '',
  1438. `FromYear` int NOT NULL DEFAULT '0',
  1439. `ToYear` int NOT NULL DEFAULT '0',
  1440. `ExcludeVA` enum('1','0') NOT NULL DEFAULT '0',
  1441. `NewGroupsOnly` enum('1','0') NOT NULL DEFAULT '0',
  1442. `ReleaseTypes` varchar(500) NOT NULL DEFAULT '',
  1443. PRIMARY KEY (`ID`),
  1444. KEY `UserID` (`UserID`),
  1445. KEY `FromYear` (`FromYear`),
  1446. KEY `ToYear` (`ToYear`)
  1447. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1448. CREATE TABLE `users_notify_quoted` (
  1449. `UserID` int NOT NULL,
  1450. `QuoterID` int NOT NULL,
  1451. `Page` enum('forums','artist','collages','requests','torrents') NOT NULL,
  1452. `PageID` int NOT NULL,
  1453. `PostID` int NOT NULL,
  1454. `UnRead` tinyint NOT NULL DEFAULT '1',
  1455. `Date` datetime,
  1456. PRIMARY KEY (`UserID`,`Page`,`PostID`)
  1457. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1458. CREATE TABLE `users_notify_torrents` (
  1459. `UserID` int NOT NULL,
  1460. `FilterID` int NOT NULL,
  1461. `GroupID` int NOT NULL,
  1462. `TorrentID` int NOT NULL,
  1463. `UnRead` tinyint NOT NULL DEFAULT '1',
  1464. PRIMARY KEY (`UserID`,`TorrentID`),
  1465. KEY `TorrentID` (`TorrentID`),
  1466. KEY `UserID_Unread` (`UserID`,`UnRead`)
  1467. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1468. CREATE TABLE `users_points` (
  1469. `UserID` int NOT NULL,
  1470. `GroupID` int NOT NULL,
  1471. `Points` tinyint NOT NULL DEFAULT '1',
  1472. PRIMARY KEY (`UserID`,`GroupID`),
  1473. KEY `UserID` (`UserID`),
  1474. KEY `GroupID` (`GroupID`)
  1475. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1476. CREATE TABLE `users_points_requests` (
  1477. `UserID` int NOT NULL,
  1478. `RequestID` int NOT NULL,
  1479. `Points` tinyint NOT NULL DEFAULT '1',
  1480. PRIMARY KEY (`RequestID`),
  1481. KEY `UserID` (`UserID`),
  1482. KEY `RequestID` (`RequestID`)
  1483. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1484. CREATE TABLE `users_seedtime` (
  1485. `UserID` int unsigned NOT NULL,
  1486. `TorrentID` int unsigned NOT NULL,
  1487. `SeedTime` int unsigned NOT NULL DEFAULT '0',
  1488. `Uploaded` bigint NOT NULL DEFAULT '0',
  1489. `LastUpdate` datetime NOT NULL,
  1490. `Downloaded` bigint unsigned NOT NULL DEFAULT '0',
  1491. PRIMARY KEY (`UserID`,`TorrentID`)
  1492. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1493. CREATE TABLE `users_sessions` (
  1494. `UserID` int NOT NULL,
  1495. `SessionID` char(64) NOT NULL,
  1496. `KeepLogged` enum('0','1') NOT NULL DEFAULT '0',
  1497. `Browser` varchar(40) DEFAULT NULL,
  1498. `OperatingSystem` varchar(13) DEFAULT NULL,
  1499. `IP` varchar(90) NOT NULL,
  1500. `LastUpdate` datetime,
  1501. `Active` tinyint NOT NULL DEFAULT '1',
  1502. `FullUA` text,
  1503. PRIMARY KEY (`UserID`,`SessionID`),
  1504. KEY `UserID` (`UserID`),
  1505. KEY `LastUpdate` (`LastUpdate`),
  1506. KEY `Active` (`Active`),
  1507. KEY `ActiveAgeKeep` (`Active`,`LastUpdate`,`KeepLogged`)
  1508. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1509. CREATE TABLE `users_subscriptions` (
  1510. `UserID` int NOT NULL,
  1511. `TopicID` int NOT NULL,
  1512. PRIMARY KEY (`UserID`,`TopicID`)
  1513. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1514. CREATE TABLE `users_subscriptions_comments` (
  1515. `UserID` int NOT NULL,
  1516. `Page` enum('artist','collages','requests','torrents') NOT NULL,
  1517. `PageID` int NOT NULL,
  1518. PRIMARY KEY (`UserID`,`Page`,`PageID`)
  1519. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1520. CREATE TABLE `users_torrent_history` (
  1521. `UserID` int unsigned NOT NULL,
  1522. `NumTorrents` int unsigned NOT NULL,
  1523. `Date` int unsigned NOT NULL,
  1524. `Time` int unsigned NOT NULL DEFAULT '0',
  1525. `LastTime` int unsigned NOT NULL DEFAULT '0',
  1526. `Finished` enum('1','0') NOT NULL DEFAULT '1',
  1527. `Weight` bigint unsigned NOT NULL DEFAULT '0',
  1528. PRIMARY KEY (`UserID`,`NumTorrents`,`Date`),
  1529. KEY `Finished` (`Finished`),
  1530. KEY `Date` (`Date`)
  1531. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1532. CREATE TABLE `users_torrent_history_snatch` (
  1533. `UserID` int unsigned NOT NULL,
  1534. `NumSnatches` int unsigned NOT NULL DEFAULT '0',
  1535. PRIMARY KEY (`UserID`),
  1536. KEY `NumSnatches` (`NumSnatches`)
  1537. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1538. CREATE TABLE `users_torrent_history_temp` (
  1539. `UserID` int unsigned NOT NULL,
  1540. `NumTorrents` int unsigned NOT NULL DEFAULT '0',
  1541. `SumTime` bigint unsigned NOT NULL DEFAULT '0',
  1542. `SeedingAvg` int unsigned NOT NULL DEFAULT '0',
  1543. PRIMARY KEY (`UserID`)
  1544. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1545. CREATE TABLE `users_warnings_forums` (
  1546. `UserID` int unsigned NOT NULL,
  1547. `Comment` text,
  1548. PRIMARY KEY (`UserID`)
  1549. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1550. CREATE TABLE `wiki_aliases` (
  1551. `Alias` varchar(50) NOT NULL,
  1552. `UserID` int NOT NULL,
  1553. `ArticleID` int DEFAULT NULL,
  1554. PRIMARY KEY (`Alias`)
  1555. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1556. CREATE TABLE `wiki_articles` (
  1557. `ID` int NOT NULL AUTO_INCREMENT,
  1558. `Revision` int NOT NULL DEFAULT '1',
  1559. `Title` varchar(100) DEFAULT NULL,
  1560. `Body` mediumtext,
  1561. `MinClassRead` int DEFAULT NULL,
  1562. `MinClassEdit` int DEFAULT NULL,
  1563. `Date` datetime DEFAULT NULL,
  1564. `Author` int DEFAULT NULL,
  1565. PRIMARY KEY (`ID`)
  1566. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1567. CREATE TABLE `wiki_artists` (
  1568. `RevisionID` int NOT NULL AUTO_INCREMENT,
  1569. `PageID` int NOT NULL DEFAULT '0',
  1570. `Body` text,
  1571. `UserID` int NOT NULL DEFAULT '0',
  1572. `Summary` varchar(100) DEFAULT NULL,
  1573. `Time` datetime,
  1574. `Image` varchar(255) DEFAULT NULL,
  1575. PRIMARY KEY (`RevisionID`),
  1576. KEY `PageID` (`PageID`),
  1577. KEY `UserID` (`UserID`),
  1578. KEY `Time` (`Time`)
  1579. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1580. CREATE TABLE `wiki_revisions` (
  1581. `ID` int NOT NULL,
  1582. `Revision` int NOT NULL,
  1583. `Title` varchar(100) DEFAULT NULL,
  1584. `Body` mediumtext,
  1585. `Date` datetime DEFAULT NULL,
  1586. `Author` int DEFAULT NULL,
  1587. KEY `ID_Revision` (`ID`,`Revision`)
  1588. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1589. CREATE TABLE `wiki_torrents` (
  1590. `RevisionID` int NOT NULL AUTO_INCREMENT,
  1591. `PageID` int NOT NULL DEFAULT '0',
  1592. `Body` text,
  1593. `UserID` int NOT NULL DEFAULT '0',
  1594. `Summary` varchar(100) DEFAULT NULL,
  1595. `Time` datetime,
  1596. `Image` varchar(255) DEFAULT NULL,
  1597. PRIMARY KEY (`RevisionID`),
  1598. KEY `PageID` (`PageID`),
  1599. KEY `UserID` (`UserID`),
  1600. KEY `Time` (`Time`)
  1601. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1602. CREATE TABLE `xbt_client_whitelist` (
  1603. `id` int unsigned NOT NULL AUTO_INCREMENT,
  1604. `peer_id` varchar(25) DEFAULT NULL,
  1605. `vstring` varchar(255) DEFAULT '',
  1606. PRIMARY KEY (`id`),
  1607. UNIQUE KEY `peer_id` (`peer_id`)
  1608. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1609. CREATE TABLE `xbt_files_users` (
  1610. `uid` int NOT NULL,
  1611. `active` tinyint NOT NULL DEFAULT '0',
  1612. `announced` int NOT NULL,
  1613. `completed` tinyint NOT NULL DEFAULT '0',
  1614. `downloaded` bigint NOT NULL DEFAULT '0',
  1615. `remaining` bigint NOT NULL DEFAULT '0',
  1616. `uploaded` bigint NOT NULL DEFAULT '0',
  1617. `upspeed` int unsigned NOT NULL DEFAULT '0',
  1618. `downspeed` int unsigned NOT NULL DEFAULT '0',
  1619. `corrupt` bigint NOT NULL DEFAULT '0',
  1620. `timespent` int unsigned NOT NULL,
  1621. `useragent` varchar(51) NOT NULL DEFAULT '',
  1622. `connectable` tinyint NOT NULL DEFAULT '1',
  1623. `peer_id` binary(20) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
  1624. `fid` int NOT NULL,
  1625. `mtime` int NOT NULL,
  1626. `ip` varchar(15) NOT NULL DEFAULT '', -- Max IPv4 address length
  1627. `seeder` tinyint NOT NULL DEFAULT '0',
  1628. PRIMARY KEY (`peer_id`,`fid`,`uid`),
  1629. KEY `remaining_idx` (`remaining`),
  1630. KEY `fid_idx` (`fid`),
  1631. KEY `mtime_idx` (`mtime`),
  1632. KEY `uid_active` (`uid`,`active`)
  1633. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1634. CREATE TABLE `xbt_snatched` (
  1635. `uid` int NOT NULL DEFAULT '0',
  1636. `tstamp` int NOT NULL,
  1637. `fid` int NOT NULL,
  1638. `IP` varchar(15) NOT NULL, -- Max IPv4 address length
  1639. `seedtime` int NOT NULL DEFAULT '0',
  1640. KEY `fid` (`fid`),
  1641. KEY `tstamp` (`tstamp`),
  1642. KEY `uid_tstamp` (`uid`,`tstamp`)
  1643. ) ENGINE=InnoDB CHARSET=utf8mb4;
  1644. -- Okay, that's all for the schema structure
  1645. -- Now we have the default values to initialize the DB with
  1646. SET FOREIGN_KEY_CHECKS = 1;
  1647. INSERT INTO permissions (ID, Level, Name, `Values`, DisplayStaff) VALUES
  1648. (15, 1000, 'Sysop', 'a:100:{s:10:\"site_leech\";i:1;s:11:\"site_upload\";i:1;s:9:\"site_vote\";i:1;s:20:\"site_submit_requests\";i:1;s:20:\"site_advanced_search\";i:1;s:10:\"site_top10\";i:1;s:19:\"site_advanced_top10\";i:1;s:16:\"site_album_votes\";i:1;s:20:\"site_torrents_notify\";i:1;s:20:\"site_collages_create\";i:1;s:20:\"site_collages_manage\";i:1;s:20:\"site_collages_delete\";i:1;s:23:\"site_collages_subscribe\";i:1;s:22:\"site_collages_personal\";i:1;s:28:\"site_collages_renamepersonal\";i:1;s:19:\"site_make_bookmarks\";i:1;s:14:\"site_edit_wiki\";i:1;s:22:\"site_can_invite_always\";i:1;s:27:\"site_send_unlimited_invites\";i:1;s:22:\"site_moderate_requests\";i:1;s:18:\"site_delete_artist\";i:1;s:20:\"site_moderate_forums\";i:1;s:17:\"site_admin_forums\";i:1;s:23:\"site_forums_double_post\";i:1;s:14:\"site_view_flow\";i:1;s:18:\"site_view_full_log\";i:1;s:28:\"site_view_torrent_snatchlist\";i:1;s:18:\"site_recommend_own\";i:1;s:27:\"site_manage_recommendations\";i:1;s:15:\"site_delete_tag\";i:1;s:23:\"site_disable_ip_history\";i:1;s:14:\"zip_downloader\";i:1;s:10:\"site_debug\";i:1;s:17:\"site_proxy_images\";i:1;s:16:\"site_search_many\";i:1;s:20:\"users_edit_usernames\";i:1;s:16:\"users_edit_ratio\";i:1;s:20:\"users_edit_own_ratio\";i:1;s:17:\"users_edit_titles\";i:1;s:18:\"users_edit_avatars\";i:1;s:18:\"users_edit_invites\";i:1;s:22:\"users_edit_watch_hours\";i:1;s:21:\"users_edit_reset_keys\";i:1;s:19:\"users_edit_profiles\";i:1;s:18:\"users_view_friends\";i:1;s:20:\"users_reset_own_keys\";i:1;s:19:\"users_edit_password\";i:1;s:19:\"users_promote_below\";i:1;s:16:\"users_promote_to\";i:1;s:16:\"users_give_donor\";i:1;s:10:\"users_warn\";i:1;s:19:\"users_disable_users\";i:1;s:19:\"users_disable_posts\";i:1;s:17:\"users_disable_any\";i:1;s:18:\"users_delete_users\";i:1;s:18:\"users_view_invites\";i:1;s:20:\"users_view_seedleech\";i:1;s:19:\"users_view_uploaded\";i:1;s:15:\"users_view_keys\";i:1;s:14:\"users_view_ips\";i:1;s:16:\"users_view_email\";i:1;s:18:\"users_invite_notes\";i:1;s:23:\"users_override_paranoia\";i:1;s:12:\"users_logout\";i:1;s:20:\"users_make_invisible\";i:1;s:9:\"users_mod\";i:1;s:13:\"torrents_edit\";i:1;s:15:\"torrents_delete\";i:1;s:20:\"torrents_delete_fast\";i:1;s:18:\"torrents_freeleech\";i:1;s:20:\"torrents_search_fast\";i:1;i:1;s:19:\"torrents_fix_ghosts\";i:1;s:17:\"admin_manage_news\";i:1;s:17:\"admin_manage_blog\";i:1;s:18:\"admin_manage_polls\";i:1;s:19:\"admin_manage_forums\";i:1;s:16:\"admin_manage_fls\";i:1;s:13:\"admin_reports\";i:1;s:26:\"admin_advanced_user_search\";i:1;s:18:\"admin_create_users\";i:1;s:15:\"admin_donor_log\";i:1;s:19:\"admin_manage_ipbans\";i:1;i:1;s:17:\"admin_clear_cache\";i:1;s:15:\"admin_whitelist\";i:1;s:24:\"admin_manage_permissions\";i:1;s:14:\"admin_schedule\";i:1;s:17:\"admin_login_watch\";i:1;s:17:\"admin_manage_wiki\";i:1;s:18:\"admin_update_geoip\";i:1;s:21:\"site_collages_recover\";i:1;s:19:\"torrents_add_artist\";i:1;s:13:\"edit_unknowns\";i:1;s:19:\"forums_polls_create\";i:1;s:21:\"forums_polls_moderate\";i:1;s:12:\"project_team\";i:1;s:25:\"torrents_edit_vanityhouse\";i:1;s:23:\"artist_edit_vanityhouse\";i:1;s:21:\"site_tag_aliases_read\";i:1;}', '1'),
  1649. (11, 800, 'Moderator', 'a:89:{s:26:\"admin_advanced_user_search\";i:1;s:17:\"admin_clear_cache\";i:1;s:18:\"admin_create_users\";i:1;i:1;s:15:\"admin_donor_log\";i:1;s:17:\"admin_login_watch\";i:1;s:17:\"admin_manage_blog\";i:1;s:19:\"admin_manage_ipbans\";i:1;s:17:\"admin_manage_news\";i:1;s:18:\"admin_manage_polls\";i:1;s:17:\"admin_manage_wiki\";i:1;s:13:\"admin_reports\";i:1;s:23:\"artist_edit_vanityhouse\";i:1;s:13:\"edit_unknowns\";i:1;s:19:\"forums_polls_create\";i:1;s:21:\"forums_polls_moderate\";i:1;s:12:\"project_team\";i:1;s:17:\"site_admin_forums\";i:1;s:20:\"site_advanced_search\";i:1;s:19:\"site_advanced_top10\";i:1;s:16:\"site_album_votes\";i:1;s:22:\"site_can_invite_always\";i:1;s:20:\"site_collages_create\";i:1;s:20:\"site_collages_delete\";i:1;s:20:\"site_collages_manage\";i:1;s:22:\"site_collages_personal\";i:1;s:21:\"site_collages_recover\";i:1;s:28:\"site_collages_renamepersonal\";i:1;s:23:\"site_collages_subscribe\";i:1;s:18:\"site_delete_artist\";i:1;s:15:\"site_delete_tag\";i:1;s:23:\"site_disable_ip_history\";i:1;s:14:\"site_edit_wiki\";i:1;s:23:\"site_forums_double_post\";i:1;s:10:\"site_leech\";i:1;s:19:\"site_make_bookmarks\";i:1;s:27:\"site_manage_recommendations\";i:1;s:20:\"site_moderate_forums\";i:1;s:22:\"site_moderate_requests\";i:1;s:17:\"site_proxy_images\";i:1;s:18:\"site_recommend_own\";i:1;s:16:\"site_search_many\";i:1;s:27:\"site_send_unlimited_invites\";i:1;s:20:\"site_submit_requests\";i:1;s:21:\"site_tag_aliases_read\";i:1;s:10:\"site_top10\";i:1;s:20:\"site_torrents_notify\";i:1;s:11:\"site_upload\";i:1;s:14:\"site_view_flow\";i:1;s:18:\"site_view_full_log\";i:1;s:28:\"site_view_torrent_snatchlist\";i:1;s:9:\"site_vote\";i:1;s:19:\"torrents_add_artist\";i:1;s:15:\"torrents_delete\";i:1;s:20:\"torrents_delete_fast\";i:1;s:13:\"torrents_edit\";i:1;s:25:\"torrents_edit_vanityhouse\";i:1;s:19:\"torrents_fix_ghosts\";i:1;s:18:\"torrents_freeleech\";i:1;i:1;s:20:\"torrents_search_fast\";i:1;s:18:\"users_delete_users\";i:1;s:17:\"users_disable_any\";i:1;s:19:\"users_disable_posts\";i:1;s:19:\"users_disable_users\";i:1;s:18:\"users_edit_avatars\";i:1;s:18:\"users_edit_invites\";i:1;s:20:\"users_edit_own_ratio\";i:1;s:19:\"users_edit_password\";i:1;s:19:\"users_edit_profiles\";i:1;s:16:\"users_edit_ratio\";i:1;s:21:\"users_edit_reset_keys\";i:1;s:17:\"users_edit_titles\";i:1;s:16:\"users_give_donor\";i:1;s:12:\"users_logout\";i:1;s:20:\"users_make_invisible\";i:1;s:9:\"users_mod\";i:1;s:23:\"users_override_paranoia\";i:1;s:19:\"users_promote_below\";i:1;s:20:\"users_reset_own_keys\";i:1;s:10:\"users_warn\";i:1;s:16:\"users_view_email\";i:1;s:18:\"users_view_friends\";i:1;s:18:\"users_view_invites\";i:1;s:14:\"users_view_ips\";i:1;s:15:\"users_view_keys\";i:1;s:20:\"users_view_seedleech\";i:1;s:19:\"users_view_uploaded\";i:1;s:14:\"zip_downloader\";i:1;}', '1'),
  1650. (2, 100, 'User', 'a:7:{s:10:\"site_leech\";i:1;s:11:\"site_upload\";i:1;s:9:\"site_vote\";i:1;s:20:\"site_advanced_search\";i:1;s:10:\"site_top10\";i:1;s:14:\"site_edit_wiki\";i:1;s:19:\"torrents_add_artist\";i:1;}', '0'),
  1651. (3, 150, 'Member', 'a:10:{s:10:\"site_leech\";i:1;s:11:\"site_upload\";i:1;s:9:\"site_vote\";i:1;s:20:\"site_submit_requests\";i:1;s:20:\"site_advanced_search\";i:1;s:10:\"site_top10\";i:1;s:20:\"site_collages_manage\";i:1;s:19:\"site_make_bookmarks\";i:1;s:14:\"site_edit_wiki\";i:1;s:19:\"torrents_add_artist\";i:1;}', '0'),
  1652. (4, 200, 'Power User', 'a:14:{s:10:\"site_leech\";i:1;s:11:\"site_upload\";i:1;s:9:\"site_vote\";i:1;s:20:\"site_submit_requests\";i:1;s:20:\"site_advanced_search\";i:1;s:10:\"site_top10\";i:1;s:20:\"site_torrents_notify\";i:1;s:20:\"site_collages_create\";i:1;s:20:\"site_collages_manage\";i:1;s:19:\"site_make_bookmarks\";i:1;s:14:\"site_edit_wiki\";i:1;s:14:\"zip_downloader\";i:1;s:19:\"forums_polls_create\";i:1;s:19:\"torrents_add_artist\";i:1;} ', '0'),
  1653. (5, 250, 'Elite', 'a:18:{s:10:\"site_leech\";i:1;s:11:\"site_upload\";i:1;s:9:\"site_vote\";i:1;s:20:\"site_submit_requests\";i:1;s:20:\"site_advanced_search\";i:1;s:10:\"site_top10\";i:1;s:20:\"site_torrents_notify\";i:1;s:20:\"site_collages_create\";i:1;s:20:\"site_collages_manage\";i:1;s:19:\"site_advanced_top10\";i:1;s:19:\"site_make_bookmarks\";i:1;s:14:\"site_edit_wiki\";i:1;s:15:\"site_delete_tag\";i:1;s:14:\"zip_downloader\";i:1;s:19:\"forums_polls_create\";i:1;s:13:\"torrents_edit\";i:1;s:19:\"torrents_add_artist\";i:1;s:17:\"admin_clear_cache\";i:1;}', '0'),
  1654. (20, 202, 'Donor', 'a:9:{s:9:\"site_vote\";i:1;s:20:\"site_submit_requests\";i:1;s:20:\"site_advanced_search\";i:1;s:10:\"site_top10\";i:1;s:20:\"site_torrents_notify\";i:1;s:20:\"site_collages_create\";i:1;s:20:\"site_collages_manage\";i:1;s:14:\"zip_downloader\";i:1;s:19:\"forums_polls_create\";i:1;}', '0'),
  1655. (19, 201, 'Artist', 'a:9:{s:10:\"site_leech\";s:1:\"1\";s:11:\"site_upload\";s:1:\"1\";s:9:\"site_vote\";s:1:\"1\";s:20:\"site_submit_requests\";s:1:\"1\";s:20:\"site_advanced_search\";s:1:\"1\";s:10:\"site_top10\";s:1:\"1\";s:19:\"site_make_bookmarks\";s:1:\"1\";s:14:\"site_edit_wiki\";s:1:\"1\";s:18:\"site_recommend_own\";s:1:\"1\";}', '0');
  1656. INSERT INTO stylesheets (ID, Name, Description, `Default`, Additions, Color) VALUES
  1657. (1, 'matcha', 'BioTorrents.de Stylesheet', '0', 'radio=noto_sans;radio=noto_serif;radio=opendyslexic;radio=comic_neue', '#000000'),
  1658. (2, 'bookish', 'Template Stylesheet', '1', 'radio=noto_sans;radio=noto_serif;radio=opendyslexic;radio=comic_neue', '#000000'),
  1659. (3, 'oppai', 'Oppaitime Stylesheet', '0', 'radio=noto_sans;radio=noto_serif;radio=opendyslexic;radio=comic_neue', '#fbc2e5'),
  1660. (4, 'beluga', 'Beluga Stylesheet', '0', 'radio=noto_sans;radio=noto_serif;radio=opendyslexic;radio=comic_neue;checkbox=pink;checkbox=haze', '#23252a'),
  1661. (5, 'genaviv', 'Genaviv Stylesheet', '0', 'radio=noto_sans;radio=noto_serif;radio=opendyslexic;radio=comic_neue;checkbox=fixed_header', '#0a0a0a'),
  1662. (6, 'postmod', 'What.cd Stylesheet', '0', 'radio=noto_sans;radio=noto_serif;radio=opendyslexic;radio=comic_neue', '#000000');
  1663. INSERT INTO wiki_articles (ID, Revision, Title, Body, MinClassRead, MinClassEdit, Date, Author) VALUES
  1664. (1, 1, 'Wiki', 'Welcome to your new wiki! Hope this works.', 100, 475, NOW(), 1);
  1665. INSERT INTO wiki_aliases (Alias, UserID, ArticleID) VALUES ('wiki', 1, 1);
  1666. INSERT INTO wiki_revisions (ID, Revision, Title, Body, Date, Author) VALUES
  1667. (1, 1, 'Wiki', 'Welcome to your new wiki! Hope this works.', NOW(), 1);
  1668. INSERT INTO forums (ID, CategoryID, Sort, Name, Description, MinClassRead, MinClassWrite, MinClassCreate, NumTopics, NumPosts, LastPostID, LastPostAuthorID, LastPostTopicID, LastPostTime) VALUES
  1669. (1, 1, 20, 'Your Site', 'Totally rad forum', 100, 100, 100, 0, 0, 0, 0, 0, NULL),
  1670. (2, 5, 30, 'Chat', 'Expect this to fill up with spam', 100, 100, 100, 0, 0, 0, 0, 0, NULL),
  1671. (3, 10, 40, 'Help!', 'I fell down and I cant get up', 100, 100, 100, 0, 0, 0, 0, 0, NULL),
  1672. (4, 20, 100, 'Trash', 'Every thread ends up here eventually', 100, 500, 500, 0, 0, 0, 0, 0, NULL);
  1673. INSERT INTO tags (ID, Name, TagType, Uses, UserID) VALUES
  1674. (1, 'one', 'genre', 0, 1),
  1675. (2, 'two', 'genre', 0, 1),
  1676. (3, 'three', 'genre', 0, 1),
  1677. (4, 'four', 'genre', 0, 1),
  1678. (5, 'five', 'genre', 0, 1);
  1679. INSERT INTO schedule (NextHour, NextDay, NextBiWeekly) VALUES (0,0,0);
  1680. INSERT INTO forums_categories (ID, Sort, Name) VALUES (1,1,'Site');
  1681. INSERT INTO forums_categories (ID, Sort, Name) VALUES (5,5,'Community');
  1682. INSERT INTO forums_categories (ID, Sort, Name) VALUES (10,10,'Help');
  1683. INSERT INTO forums_categories (ID, Sort, Name) VALUES (8,8,'Music');
  1684. INSERT INTO forums_categories (ID, Sort, Name) VALUES (20,20,'Trash');
  1685. INSERT INTO misc (ID, Name, First, Second) VALUES (1, 'FreeleechPool', '100', '200');
  1686. -- One last thing: a trigger to update seeding stats
  1687. DELIMITER ;;
  1688. CREATE TRIGGER update_seedtime
  1689. AFTER UPDATE ON `xbt_files_users`
  1690. FOR EACH ROW BEGIN
  1691. IF ( (OLD.timespent < NEW.timespent) AND (OLD.active = 1) AND (NEW.active = 1) ) THEN
  1692. INSERT INTO users_seedtime
  1693. (UserID, TorrentID, SeedTime, Uploaded, Downloaded, LastUpdate)
  1694. VALUES
  1695. (NEW.uid, NEW.fid, NEW.timespent, NEW.uploaded, NEW.downloaded, NOW())
  1696. ON DUPLICATE KEY UPDATE
  1697. SeedTime = SeedTime + (NEW.timespent - OLD.timespent),
  1698. Uploaded = Uploaded + (NEW.uploaded - OLD.uploaded),
  1699. Downloaded = Downloaded + (NEW.downloaded - OLD.downloaded),
  1700. LastUpdate = NOW();
  1701. END IF;
  1702. END;;
  1703. DELIMITER ;