Guest User

ripple_db.php

a guest
Sep 10th, 2018
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.48 KB | None | 0 0
  1. <?php
  2. define('DATABASE_NAME', 'ripple');
  3. define('DATABASE_USER', 'DB_USR');
  4. define('DATABASE_PASS', 'DB_PSW');
  5. define('DATABASE_HOST', 'localhost');
  6. define('DATABASE_WHAT', 'host');
  7.  
  8. $db = new DBPDO();
  9.  
  10. $q = <<<'ENDOFMYSQLQUERY'
  11. SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
  12. CREATE DATABASE IF NOT EXISTS `ripple` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
  13. USE `ripple`;
  14.  
  15. CREATE TABLE IF NOT EXISTS `2fa` (
  16. `userid` int(11) NOT NULL,
  17. `ip` int(11) NOT NULL,
  18. PRIMARY KEY (`userid`)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  20.  
  21. CREATE TABLE IF NOT EXISTS `2fa_telegram` (
  22. `id` int(11) NOT NULL AUTO_INCREMENT,
  23. `userid` int(11) NOT NULL,
  24. PRIMARY KEY (`id`)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  26.  
  27. CREATE TABLE IF NOT EXISTS `2fa_totp` (
  28. `enabled` tinyint(1) NOT NULL DEFAULT '0',
  29. `userid` int(11) NOT NULL,
  30. PRIMARY KEY (`userid`)
  31. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  32.  
  33. CREATE TABLE IF NOT EXISTS `achievements` (
  34. `id` int(11) NOT NULL AUTO_INCREMENT,
  35. `name` varchar(64) NOT NULL,
  36. `description` varchar(128) NOT NULL,
  37. `icon` varchar(32) NOT NULL,
  38. `version` int(11) NOT NULL DEFAULT '0',
  39. PRIMARY KEY (`id`)
  40. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
  41.  
  42. CREATE TABLE `badges` (
  43. `id` int(11) NOT NULL,
  44. `name` varchar(32) NOT NULL,
  45. `icon` varchar(32) NOT NULL
  46. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  47.  
  48. INSERT INTO `badges` (`id`, `name`, `icon`) VALUES
  49. (1, 'Beta tester 1.5', 'fa-gift'),
  50. (2, 'None', '');
  51.  
  52. CREATE TABLE `bancho_channels` (
  53. `id` int(11) NOT NULL,
  54. `name` varchar(32) NOT NULL,
  55. `description` varchar(127) NOT NULL,
  56. `public_read` tinyint(4) NOT NULL,
  57. `public_write` tinyint(4) NOT NULL,
  58. `status` tinyint(4) NOT NULL,
  59. `temp` tinyint(1) NOT NULL DEFAULT '0',
  60. `hidden` tinyint(1) NOT NULL DEFAULT '0'
  61. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  62.  
  63. INSERT INTO `bancho_channels` (`id`, `name`, `description`, `public_read`, `public_write`, `status`, `temp`, `hidden`) VALUES
  64. (1, '#osu', 'Main Ripple channel', 1, 1, 1, 0, 0),
  65. (2, '#announce', 'Announce channel', 1, 0, 1, 0, 0),
  66. (3, '#admin', 'Admin only channel', 0, 0, 1, 0, 0),
  67. (4, '#italian', 'Italian community channel', 1, 1, 1, 0, 0),
  68. (5, '#english', 'English speaking channel', 1, 1, 1, 0, 0);
  69.  
  70. CREATE TABLE `bancho_messages` (
  71. `id` int(11) NOT NULL,
  72. `msg_from_userid` int(11) NOT NULL,
  73. `msg_from_username` varchar(30) NOT NULL,
  74. `msg_to` varchar(32) NOT NULL,
  75. `msg` varchar(127) NOT NULL,
  76. `time` int(11) NOT NULL
  77. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  78.  
  79. CREATE TABLE `bancho_private_messages` (
  80. `id` int(11) NOT NULL,
  81. `msg_from_userid` int(11) NOT NULL,
  82. `msg_from_username` varchar(30) NOT NULL,
  83. `msg_to` varchar(32) NOT NULL,
  84. `msg` varchar(127) NOT NULL,
  85. `time` int(11) NOT NULL
  86. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  87.  
  88. CREATE TABLE `bancho_settings` (
  89. `id` int(11) NOT NULL,
  90. `name` varchar(32) NOT NULL,
  91. `value_int` int(11) NOT NULL DEFAULT '0',
  92. `value_string` varchar(512) NOT NULL
  93. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  94.  
  95. INSERT INTO `bancho_settings` (`id`, `name`, `value_int`, `value_string`) VALUES
  96. (1, 'bancho_maintenance', 0, ''),
  97. (2, 'free_direct', 1, ''),
  98. (3, 'menu_icon', 0, 'https://i.imgur.com/L61sxgX.png|http://emily.steffen.sexy'),
  99. (4, 'login_messages', 0, ''),
  100. (5, 'restricted_joke', 0, ''),
  101. (6, 'login_notification', 0, 'Welcome to pep.py'),
  102. (7, 'osu_versions', 0, ''),
  103. (8, 'osu_md5s', 0, '');
  104.  
  105. CREATE TABLE `bancho_tokens` (
  106. `id` int(11) NOT NULL,
  107. `token` varchar(16) NOT NULL,
  108. `osu_id` int(11) NOT NULL,
  109. `latest_message_id` int(11) NOT NULL,
  110. `latest_private_message_id` int(11) NOT NULL,
  111. `latest_packet_time` int(11) NOT NULL,
  112. `latest_heavy_packet_time` int(11) NOT NULL,
  113. `joined_channels` varchar(512) NOT NULL,
  114. `game_mode` tinyint(4) NOT NULL,
  115. `action` int(11) NOT NULL,
  116. `action_text` varchar(128) NOT NULL,
  117. `kicked` tinyint(4) NOT NULL
  118. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  119.  
  120. CREATE TABLE `beatmaps` (
  121. `id` int(11) NOT NULL,
  122. `beatmap_id` int(11) NOT NULL DEFAULT '0',
  123. `beatmapset_id` int(11) NOT NULL DEFAULT '0',
  124. `beatmap_md5` varchar(32) NOT NULL DEFAULT '',
  125. `song_name` varchar(128) NOT NULL DEFAULT '',
  126. `ar` float NOT NULL DEFAULT '0',
  127. `od` float NOT NULL DEFAULT '0',
  128. `difficulty_std` float NOT NULL DEFAULT '0',
  129. `difficulty_taiko` float NOT NULL DEFAULT '0',
  130. `difficulty_ctb` float NOT NULL DEFAULT '0',
  131. `difficulty_mania` float NOT NULL DEFAULT '0',
  132. `max_combo` int(11) NOT NULL DEFAULT '0',
  133. `hit_length` int(11) NOT NULL DEFAULT '0',
  134. `bpm` int(11) NOT NULL DEFAULT '0',
  135. `ranked` tinyint(4) NOT NULL DEFAULT '0',
  136. `latest_update` int(11) NOT NULL DEFAULT '0',
  137. `ranked_status_freezed` tinyint(1) NOT NULL DEFAULT '0',
  138. `playcount` int(11) NOT NULL DEFAULT '0',
  139. `passcount` int(11) NOT NULL DEFAULT '0'
  140. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  141.  
  142. CREATE TABLE `beatmaps_names` (
  143. `id` int(11) NOT NULL,
  144. `beatmap_md5` varchar(32) NOT NULL DEFAULT '',
  145. `beatmap_name` varchar(256) NOT NULL DEFAULT ''
  146. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  147.  
  148. CREATE TABLE `beta_keys` (
  149. `id` int(11) NOT NULL,
  150. `key_md5` varchar(32) NOT NULL DEFAULT '',
  151. `description` varchar(128) NOT NULL DEFAULT '',
  152. `allowed` tinyint(4) NOT NULL DEFAULT '0',
  153. `public` tinyint(4) NOT NULL DEFAULT '0'
  154. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  155.  
  156. INSERT INTO `beta_keys` (`id`, `key_md5`, `description`, `allowed`, `public`) VALUES
  157. (1, '110fe4a3830966be01d0b513fcdb4f66', 'betakey', 1, 1);
  158.  
  159. CREATE TABLE IF NOT EXISTS `cakes` (
  160. `id` int(11) NOT NULL AUTO_INCREMENT,
  161. `userid` int(11) NOT NULL,
  162. `score_id` int(11) NOT NULL,
  163. `processes` blob NOT NULL,
  164. `detected` json NOT NULL,
  165. `flags` int(11) NOT NULL DEFAULT '0',
  166. PRIMARY KEY (`id`)
  167. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
  168.  
  169. CREATE TABLE IF NOT EXISTS `discord_roles` (
  170. `id` int(11) NOT NULL AUTO_INCREMENT,
  171. `userid` int(11) NOT NULL,
  172. `discordid` int(11) NOT NULL,
  173. `roleid` int(11) NOT NULL,
  174. PRIMARY KEY (`id`)
  175. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  176.  
  177. CREATE TABLE IF NOT EXISTS `docs` (
  178. `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  179. `doc_name` varchar(255) NOT NULL DEFAULT 'New Documentation File',
  180. `doc_contents` mediumtext NOT NULL,
  181. `public` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  182. `old_name` varchar(200) DEFAULT NULL,
  183. PRIMARY KEY (`id`)
  184. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  185.  
  186. CREATE TABLE IF NOT EXISTS `eggs` (
  187. `id` int(11) NOT NULL AUTO_INCREMENT,
  188. `type` enum('hash','path','file','title') NOT NULL DEFAULT 'hash',
  189. `value` varchar(128) NOT NULL,
  190. `tag` varchar(128) NOT NULL,
  191. `ban` tinyint(1) NOT NULL DEFAULT '0',
  192. `is_regex` tinyint(1) NOT NULL DEFAULT '0',
  193. PRIMARY KEY (`id`)
  194. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  195.  
  196. CREATE TABLE `hw_user` (
  197. `id` int(11) NOT NULL,
  198. `userid` int(11) NOT NULL,
  199. `mac` varchar(32) NOT NULL,
  200. `unique_id` varchar(32) NOT NULL,
  201. `disk_id` varchar(32) NOT NULL,
  202. `occurencies` int(11) NOT NULL DEFAULT '0',
  203. `activated` tinyint(1) NOT NULL DEFAULT '0'
  204. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  205.  
  206. CREATE TABLE `identity_tokens` (
  207. `userid` int(11) NOT NULL,
  208. `token` varchar(64) NOT NULL
  209. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  210.  
  211. CREATE TABLE `ip_user` (
  212. `userid` int(11) NOT NULL,
  213. `ip` text NOT NULL,
  214. `occurencies` int(11) NOT NULL
  215. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  216.  
  217. CREATE TABLE `leaderboard_ctb` (
  218. `position` int(10) UNSIGNED NOT NULL,
  219. `user` int(11) NOT NULL,
  220. `v` bigint(20) NOT NULL
  221. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  222.  
  223. CREATE TABLE `leaderboard_mania` (
  224. `position` int(10) UNSIGNED NOT NULL,
  225. `user` int(11) NOT NULL,
  226. `v` bigint(20) NOT NULL
  227. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  228.  
  229. CREATE TABLE `leaderboard_std` (
  230. `position` int(10) UNSIGNED NOT NULL,
  231. `user` int(11) NOT NULL,
  232. `v` bigint(20) NOT NULL
  233. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  234.  
  235. CREATE TABLE `leaderboard_taiko` (
  236. `position` int(10) UNSIGNED NOT NULL,
  237. `user` int(11) NOT NULL,
  238. `v` bigint(20) NOT NULL
  239. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  240.  
  241. CREATE TABLE IF NOT EXISTS `main_menu_icons` (
  242. `file_id` int(11) NOT NULL AUTO_INCREMENT,
  243. `url` varchar(128) NOT NULL,
  244. `is_current` tinyint(1) NOT NULL,
  245. PRIMARY KEY (`file_id`)
  246. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  247.  
  248. CREATE TABLE `osin_access` (
  249. `scope` int(11) NOT NULL DEFAULT '0',
  250. `created_at` int(11) NOT NULL DEFAULT '0',
  251. `client` int(11) NOT NULL DEFAULT '0',
  252. `extra` int(11) NOT NULL DEFAULT '0'
  253. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  254.  
  255. CREATE TABLE `osin_client` (
  256. `id` int(11) NOT NULL,
  257. `secret` varchar(64) NOT NULL DEFAULT '',
  258. `extra` varchar(127) NOT NULL DEFAULT '',
  259. `redirect_uri` varchar(127) NOT NULL DEFAULT ''
  260. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  261.  
  262. CREATE TABLE `osin_client_user` (
  263. `client_id` int(11) NOT NULL DEFAULT '0',
  264. `user` int(11) NOT NULL DEFAULT '0'
  265. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  266.  
  267. CREATE TABLE `password_recovery` (
  268. `id` int(11) NOT NULL,
  269. `k` varchar(80) NOT NULL,
  270. `u` varchar(30) NOT NULL,
  271. `t` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
  272. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  273.  
  274. CREATE TABLE `privileges_groups` (
  275. `id` int(11) NOT NULL,
  276. `name` varchar(32) NOT NULL,
  277. `privileges` int(11) NOT NULL,
  278. `color` varchar(32) NOT NULL
  279. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  280.  
  281. INSERT INTO `privileges_groups` (`id`, `name`, `privileges`, `color`) VALUES
  282. (1, 'Banned', 0, ''),
  283. (2, 'BAT', 267, ''),
  284. (3, 'Chat Moderators', 2883911, ''),
  285. (4, 'Community Manager ', 978427, ''),
  286. (5, 'Developer', 1043995, ''),
  287. (6, 'Donor', 7, ''),
  288. (7, 'God', 1048575, 'primary'),
  289. (8, 'Normal User', 3, ''),
  290. (9, 'Pending', 1048576, ''),
  291. (10, 'Restricted', 2, '');
  292.  
  293. CREATE TABLE `profile_backgrounds` (
  294. `uid` int(11) NOT NULL,
  295. `time` int(11) NOT NULL,
  296. `type` int(11) NOT NULL,
  297. `value` text NOT NULL
  298. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  299.  
  300. CREATE TABLE `rank_requests` (
  301. `id` int(11) NOT NULL,
  302. `userid` int(11) NOT NULL,
  303. `bid` int(11) NOT NULL,
  304. `type` varchar(8) NOT NULL,
  305. `time` int(11) NOT NULL,
  306. `blacklisted` tinyint(1) NOT NULL
  307. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  308.  
  309. CREATE TABLE `remember` (
  310. `id` int(11) NOT NULL,
  311. `userid` int(11) NOT NULL,
  312. `series_identifier` int(11) DEFAULT NULL,
  313. `token_sha` varchar(255) DEFAULT NULL
  314. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  315.  
  316. CREATE TABLE `reports` (
  317. `id` int(11) NOT NULL,
  318. `name` varchar(128) NOT NULL,
  319. `from_username` varchar(32) NOT NULL,
  320. `content` varchar(1024) NOT NULL,
  321. `type` tinyint(4) NOT NULL,
  322. `open_time` varchar(18) NOT NULL,
  323. `update_time` varchar(18) NOT NULL,
  324. `status` tinyint(4) NOT NULL,
  325. `response` varchar(1024) NOT NULL
  326. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  327.  
  328. CREATE TABLE `scores` (
  329. `id` int(11) NOT NULL,
  330. `beatmap_md5` varchar(32) NOT NULL DEFAULT '',
  331. `userid` int(11) NOT NULL,
  332. `score` bigint(20) DEFAULT NULL,
  333. `max_combo` int(11) NOT NULL DEFAULT '0',
  334. `full_combo` tinyint(1) NOT NULL DEFAULT '0',
  335. `mods` int(11) NOT NULL DEFAULT '0',
  336. `300_count` int(11) NOT NULL DEFAULT '0',
  337. `100_count` int(11) NOT NULL DEFAULT '0',
  338. `50_count` int(11) NOT NULL DEFAULT '0',
  339. `katus_count` int(11) NOT NULL DEFAULT '0',
  340. `gekis_count` int(11) NOT NULL DEFAULT '0',
  341. `misses_count` int(11) NOT NULL DEFAULT '0',
  342. `time` varchar(18) NOT NULL DEFAULT '',
  343. `play_mode` tinyint(4) NOT NULL DEFAULT '0',
  344. `completed` tinyint(11) NOT NULL DEFAULT '0',
  345. `accuracy` float(15,12) DEFAULT NULL,
  346. `pp` float DEFAULT '0'
  347. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  348.  
  349. CREATE TABLE `system_settings` (
  350. `id` int(11) NOT NULL,
  351. `name` varchar(32) NOT NULL,
  352. `value_int` int(11) NOT NULL DEFAULT '0',
  353. `value_string` varchar(512) NOT NULL
  354. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  355.  
  356. INSERT INTO `system_settings` (`id`, `name`, `value_int`, `value_string`) VALUES
  357. (1, 'website_maintenance', 0, ''),
  358. (2, 'game_maintenance', 0, ''),
  359. (3, 'website_global_alert', 0, ''),
  360. (4, 'website_home_alert', 0, ''),
  361. (5, 'registrations_enabled', 1, '');
  362.  
  363. CREATE TABLE `tokens` (
  364. `id` int(11) NOT NULL,
  365. `user` varchar(31) NOT NULL,
  366. `privileges` int(11) NOT NULL,
  367. `description` varchar(255) NOT NULL,
  368. `token` varchar(127) NOT NULL,
  369. `private` tinyint(4) NOT NULL,
  370. `last_updated` int(11) NOT NULL DEFAULT '0'
  371. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  372.  
  373. REATE TABLE IF NOT EXISTS `users` (
  374. `id` int(11) NOT NULL AUTO_INCREMENT,
  375. `username` varchar(30) NOT NULL,
  376. `username_safe` varchar(30) NOT NULL,
  377. `password_md5` varchar(127) NOT NULL,
  378. `salt` varchar(32) NOT NULL,
  379. `email` varchar(254) NOT NULL,
  380. `register_datetime` int(10) NOT NULL,
  381. `rank` tinyint(1) NOT NULL DEFAULT '1',
  382. `achievements_version` int(11) NOT NULL DEFAULT '0',
  383. `allowed` tinyint(1) NOT NULL DEFAULT '1',
  384. `latest_activity` int(10) NOT NULL DEFAULT '0',
  385. `silence_end` int(11) NOT NULL DEFAULT '0',
  386. `silence_reason` varchar(127) NOT NULL DEFAULT '',
  387. `notes` varchar(127) NOT NULL DEFAULT '',
  388. `ban_datetime` int(11) NOT NULL DEFAULT '0',
  389. `password_version` tinyint(4) NOT NULL DEFAULT '1',
  390. `privileges` int(11) NOT NULL,
  391. `donor_expire` int(11) NOT NULL DEFAULT '0',
  392. `flags` int(11) NOT NULL DEFAULT '0',
  393. PRIMARY KEY (`id`)
  394. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
  395.  
  396. CREATE TABLE IF NOT EXISTS `users_achievements` (
  397. `user_id` int(11) NOT NULL,
  398. `achievement_id` int(11) NOT NULL,
  399. `time` int(11) NOT NULL
  400. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  401.  
  402. CREATE TABLE `users_relationships` (
  403. `id` int(11) NOT NULL,
  404. `user1` int(11) NOT NULL,
  405. `user2` int(11) NOT NULL
  406. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  407.  
  408. CREATE TABLE `users_stats` (
  409. `id` int(11) NOT NULL,
  410. `username` varchar(30) NOT NULL,
  411. `username_aka` varchar(32) NOT NULL DEFAULT '',
  412. `user_color` varchar(16) NOT NULL DEFAULT 'black',
  413. `user_style` varchar(128) NOT NULL DEFAULT '',
  414. `ranked_score_std` bigint(20) DEFAULT NULL,
  415. `playcount_std` int(11) NOT NULL DEFAULT '0',
  416. `total_score_std` bigint(20) DEFAULT NULL,
  417. `replays_watched_std` int(11) UNSIGNED NOT NULL DEFAULT '0',
  418. `ranked_score_taiko` bigint(20) DEFAULT NULL,
  419. `playcount_taiko` int(11) NOT NULL DEFAULT '0',
  420. `total_score_taiko` bigint(20) DEFAULT NULL,
  421. `replays_watched_taiko` int(11) NOT NULL DEFAULT '0',
  422. `ranked_score_ctb` bigint(20) DEFAULT NULL,
  423. `playcount_ctb` int(11) NOT NULL DEFAULT '0',
  424. `total_score_ctb` bigint(20) DEFAULT NULL,
  425. `replays_watched_ctb` int(11) NOT NULL DEFAULT '0',
  426. `ranked_score_mania` bigint(20) DEFAULT NULL,
  427. `playcount_mania` int(11) NOT NULL DEFAULT '0',
  428. `total_score_mania` bigint(20) DEFAULT NULL,
  429. `replays_watched_mania` int(10) UNSIGNED NOT NULL DEFAULT '0',
  430. `total_hits_std` int(11) NOT NULL DEFAULT '0',
  431. `total_hits_taiko` int(11) NOT NULL DEFAULT '0',
  432. `total_hits_ctb` int(11) NOT NULL DEFAULT '0',
  433. `total_hits_mania` int(11) NOT NULL DEFAULT '0',
  434. `country` char(2) NOT NULL DEFAULT 'XX',
  435. `show_country` tinyint(4) NOT NULL DEFAULT '1',
  436. `level_std` int(11) NOT NULL DEFAULT '1',
  437. `level_taiko` int(11) NOT NULL DEFAULT '1',
  438. `level_ctb` int(11) NOT NULL DEFAULT '1',
  439. `level_mania` int(11) NOT NULL DEFAULT '1',
  440. `avg_accuracy_std` float(15,12) NOT NULL DEFAULT '0.000000000000',
  441. `avg_accuracy_taiko` float(15,12) NOT NULL DEFAULT '0.000000000000',
  442. `avg_accuracy_ctb` float(15,12) NOT NULL DEFAULT '0.000000000000',
  443. `avg_accuracy_mania` float(15,12) NOT NULL DEFAULT '0.000000000000',
  444. `pp_std` int(11) NOT NULL DEFAULT '0',
  445. `pp_taiko` int(11) NOT NULL DEFAULT '0',
  446. `pp_ctb` int(11) NOT NULL DEFAULT '0',
  447. `pp_mania` int(11) NOT NULL DEFAULT '0',
  448. `badges_shown` varchar(24) NOT NULL DEFAULT '1,0,0,0,0,0',
  449. `safe_title` tinyint(4) NOT NULL DEFAULT '0',
  450. `userpage_content` mediumtext,
  451. `play_style` smallint(6) NOT NULL DEFAULT '0',
  452. `favourite_mode` tinyint(4) NOT NULL DEFAULT '0',
  453. `custom_badge_icon` varchar(32) NOT NULL DEFAULT '',
  454. `custom_badge_name` varchar(32) NOT NULL DEFAULT '',
  455. `can_custom_badge` tinyint(1) NOT NULL DEFAULT '0',
  456. `show_custom_badge` tinyint(1) NOT NULL DEFAULT '0'
  457. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  458.  
  459. CREATE TABLE `user_badges` (
  460. `user` int(11) NOT NULL,
  461. `badge` int(11) NOT NULL
  462. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  463.  
  464. ALTER TABLE `2fa`
  465. ADD PRIMARY KEY (`userid`);
  466.  
  467. ALTER TABLE `2fa_telegram`
  468. ADD PRIMARY KEY (`userid`);
  469.  
  470. ALTER TABLE `2fa_totp`
  471. ADD PRIMARY KEY (`userid`);
  472.  
  473. ALTER TABLE `badges`
  474. ADD PRIMARY KEY (`id`);
  475.  
  476. ALTER TABLE `bancho_channels`
  477. ADD PRIMARY KEY (`id`);
  478.  
  479. ALTER TABLE `bancho_messages`
  480. ADD PRIMARY KEY (`id`);
  481.  
  482. ALTER TABLE `bancho_private_messages`
  483. ADD PRIMARY KEY (`id`);
  484.  
  485. ALTER TABLE `bancho_settings`
  486. ADD PRIMARY KEY (`id`);
  487.  
  488. ALTER TABLE `bancho_tokens`
  489. ADD PRIMARY KEY (`id`);
  490.  
  491. ALTER TABLE `beatmaps`
  492. ADD PRIMARY KEY (`id`);
  493.  
  494. ALTER TABLE `beatmaps_names`
  495. ADD PRIMARY KEY (`id`);
  496.  
  497. ALTER TABLE `beta_keys`
  498. ADD PRIMARY KEY (`id`);
  499.  
  500. ALTER TABLE `discord_roles`
  501. ADD PRIMARY KEY (`id`);
  502.  
  503. ALTER TABLE `docs`
  504. ADD PRIMARY KEY (`id`);
  505.  
  506. ALTER TABLE `hw_user`
  507. ADD PRIMARY KEY (`id`),
  508. ADD UNIQUE KEY `userid` (`userid`);
  509.  
  510. ALTER TABLE `identity_tokens`
  511. ADD UNIQUE KEY `userid` (`userid`);
  512.  
  513. ALTER TABLE `ip_user`
  514. ADD UNIQUE KEY `userid` (`userid`);
  515.  
  516. ALTER TABLE `leaderboard_ctb`
  517. ADD PRIMARY KEY (`position`);
  518.  
  519. ALTER TABLE `leaderboard_mania`
  520. ADD PRIMARY KEY (`position`);
  521.  
  522. ALTER TABLE `leaderboard_std`
  523. ADD PRIMARY KEY (`position`);
  524.  
  525. ALTER TABLE `leaderboard_taiko`
  526. ADD PRIMARY KEY (`position`);
  527.  
  528. ALTER TABLE `osin_client`
  529. ADD PRIMARY KEY (`id`);
  530.  
  531. ALTER TABLE `password_recovery`
  532. ADD PRIMARY KEY (`id`);
  533.  
  534. ALTER TABLE `privileges_groups`
  535. ADD PRIMARY KEY (`id`),
  536. ADD UNIQUE KEY `name` (`name`);
  537.  
  538. ALTER TABLE `profile_backgrounds`
  539. ADD PRIMARY KEY (`uid`);
  540.  
  541. ALTER TABLE `rank_requests`
  542. ADD PRIMARY KEY (`id`),
  543. ADD UNIQUE KEY `bid` (`bid`);
  544.  
  545. ALTER TABLE `remember`
  546. ADD PRIMARY KEY (`id`);
  547.  
  548. ALTER TABLE `reports`
  549. ADD PRIMARY KEY (`id`);
  550.  
  551. ALTER TABLE `scores`
  552. ADD PRIMARY KEY (`id`);
  553.  
  554. ALTER TABLE `system_settings`
  555. ADD PRIMARY KEY (`id`);
  556.  
  557. ALTER TABLE `tokens`
  558. ADD PRIMARY KEY (`id`);
  559.  
  560. ALTER TABLE `users`
  561. ADD PRIMARY KEY (`id`);
  562.  
  563. ALTER TABLE `users_relationships`
  564. ADD PRIMARY KEY (`id`);
  565.  
  566. ALTER TABLE `users_stats`
  567. ADD PRIMARY KEY (`id`);
  568.  
  569. ALTER TABLE `user_badges`
  570. ADD PRIMARY KEY (`user`);
  571.  
  572. ALTER TABLE `badges`
  573. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
  574. ALTER TABLE `bancho_channels`
  575. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
  576. ALTER TABLE `bancho_messages`
  577. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  578. ALTER TABLE `bancho_private_messages`
  579. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  580. ALTER TABLE `bancho_settings`
  581. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
  582. ALTER TABLE `bancho_tokens`
  583. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  584. ALTER TABLE `beatmaps`
  585. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
  586. ALTER TABLE `beatmaps_names`
  587. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
  588. ALTER TABLE `beta_keys`
  589. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
  590. ALTER TABLE `discord_roles`
  591. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  592. ALTER TABLE `docs`
  593. MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
  594. ALTER TABLE `hw_user`
  595. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
  596. ALTER TABLE `osin_client`
  597. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  598. ALTER TABLE `password_recovery`
  599. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  600. ALTER TABLE `privileges_groups`
  601. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
  602. ALTER TABLE `rank_requests`
  603. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  604. ALTER TABLE `remember`
  605. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
  606. ALTER TABLE `reports`
  607. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  608. ALTER TABLE `scores`
  609. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
  610. ALTER TABLE `system_settings`
  611. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
  612. ALTER TABLE `tokens`
  613. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
  614. ALTER TABLE `users`
  615. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=999;
  616. ALTER TABLE `users_relationships`
  617. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  618. ALTER TABLE `users_stats`
  619. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=999;
  620. ENDOFMYSQLQUERY;
  621.  
  622. $db->execute($q);
  623.  
  624. function randomString($l) {
  625. $c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  626. $res = '';
  627. srand((float) microtime() * 1000000);
  628. for ($i = 0; $i < $l; $i++) {
  629. $res .= $c[rand() % strlen($c)];
  630. }
  631.  
  632. return $res;
  633. }
  634.  
  635. echo "Fokabot doesn't exist. Creating account...\n";
  636. $plainPassword = randomString(8);
  637. $options = ['cost' => 9, 'salt' => base64_decode(base64_encode(mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)))];
  638. $md5Password = crypt(md5($plainPassword), '$2y$'.$options['salt']);
  639. $db->execute("INSERT INTO `users`(`id`, `username`, `username_safe`, `password_md5`, `salt`, `email`, `register_datetime`, `rank`, `allowed`, `latest_activity`, `silence_end`, `silence_reason`, `password_version`, `privileges`, `flags`) VALUES ('999', 'FokaBot', 'fokabot', ?, ?, 'fo@kab.ot', '1452544880', '4', '1', '0', '0', '', 1, 978427, 0);", [$md5Password, base64_encode($options['salt'])]);
  640. $db->execute("INSERT INTO `users_stats`(`id`, `username`, `username_aka`, `user_color`, `user_style`, `ranked_score_std`, `playcount_std`, `total_score_std`, `replays_watched_std`, `ranked_score_taiko`, `playcount_taiko`, `total_score_taiko`, `replays_watched_taiko`, `ranked_score_ctb`, `playcount_ctb`, `total_score_ctb`, `replays_watched_ctb`, `ranked_score_mania`, `playcount_mania`, `total_score_mania`, `replays_watched_mania`, `total_hits_std`, `total_hits_taiko`, `total_hits_ctb`, `total_hits_mania`, `country`, `show_country`, `level_std`, `level_taiko`, `level_ctb`, `level_mania`, `avg_accuracy_std`, `avg_accuracy_taiko`, `avg_accuracy_ctb`, `avg_accuracy_mania`, `pp_std`, `pp_taiko`, `pp_ctb`, `pp_mania`, `badges_shown`, `safe_title`, `userpage_content`, `play_style`, `favourite_mode`) VALUES ('999', 'FokaBot', '', 'black', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'XX', '1', '0', '0', '0', '0', '0.000000000000', '0.000000000000', '0.000000000000', '0.000000000000', '0', '0', '0', '0', '3,4,11,0,0,0', '0', '', 0, 0);");
  641. echo 'Fokabot account created! Password is: '.$plainPassword."\n";
  642. echo 'Yepp... thats all we got for now. Some stuff might be missing as not everything is tested and set up correctly.';
  643.  
  644. class DBPDO {
  645. public $pdo;
  646. private $error;
  647.  
  648. public function __construct() {
  649. $this->connect();
  650. }
  651.  
  652. public function prep_query($query) {
  653. return $this->pdo->prepare($query);
  654. }
  655.  
  656. public function connect() {
  657. if (!$this->pdo) {
  658. $dsn = 'mysql:dbname='.DATABASE_NAME.';'.DATABASE_WHAT.'='.DATABASE_HOST;
  659. $user = DATABASE_USER;
  660. $password = DATABASE_PASS;
  661. try {
  662. $this->pdo = new PDO($dsn, $user, $password, [PDO::ATTR_PERSISTENT => true]);
  663.  
  664. return true;
  665. }
  666. catch(PDOException $e) {
  667. $this->error = $e->getMessage();
  668. die($this->error);
  669.  
  670. return false;
  671. }
  672. } else {
  673. $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  674.  
  675. return true;
  676. }
  677. }
  678.  
  679. public function table_exists($table_name) {
  680. $stmt = $this->prep_query('SHOW TABLES LIKE ?');
  681. $stmt->execute([$this->add_table_prefix($table_name)]);
  682.  
  683. return $stmt->rowCount() > 0;
  684. }
  685.  
  686. public function execute($query, $values = null) {
  687. if ($values === null) {
  688. $values = [];
  689. } elseif (!is_array($values)) {
  690. $values = [$values];
  691. }
  692. $stmt = $this->prep_query($query);
  693. $stmt->execute($values);
  694.  
  695. return $stmt;
  696. }
  697.  
  698. public function fetch($query, $values = null) {
  699. if ($values === null) {
  700. $values = [];
  701. } elseif (!is_array($values)) {
  702. $values = [$values];
  703. }
  704. $stmt = $this->execute($query, $values);
  705.  
  706. return $stmt->fetch(PDO::FETCH_ASSOC);
  707. }
  708.  
  709. public function fetchAll($query, $values = null, $key = null) {
  710. if ($values === null) {
  711. $values = [];
  712. } elseif (!is_array($values)) {
  713. $values = [$values];
  714. }
  715. $stmt = $this->execute($query, $values);
  716. $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
  717. // Allows the user to retrieve results using a
  718. // column from the results as a key for the array
  719. if ($key != null && $results[0][$key]) {
  720. $keyed_results = [];
  721. foreach ($results as $result) {
  722. $keyed_results[$result[$key]] = $result;
  723. }
  724. $results = $keyed_results;
  725. }
  726.  
  727. return $results;
  728. }
  729.  
  730. public function lastInsertId() {
  731. return $this->pdo->lastInsertId();
  732. }
  733. }
  734. ?>
Add Comment
Please, Sign In to add comment