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

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