sunghwan2789/osu-BeatmapMirror

초기 설정

sunghwan2789 opened this issue · 2 comments

  • 데이터베이스 테이블 생성 SQL
  • 설정 파일 구조

데이터베이스 테이블 생성 SQL

MariaDB 10.3을 사용합니다.

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";

CREATE TABLE `gosu_beatmaps` (
  `setId` int(10) UNSIGNED NOT NULL,
  `id` int(10) UNSIGNED NOT NULL,
  `hash_sha2` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
  `hash_md5` char(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `name` tinytext COLLATE utf8mb4_unicode_ci NOT NULL,
  `author` tinytext COLLATE utf8mb4_unicode_ci NOT NULL,
  `mode` tinyint(3) NOT NULL,
  `cs` float UNSIGNED NOT NULL,
  `ar` float UNSIGNED NOT NULL,
  `od` float UNSIGNED NOT NULL,
  `hp` float UNSIGNED NOT NULL,
  `bpm` double UNSIGNED NOT NULL,
  `length` int(10) UNSIGNED NOT NULL,
  `star` double UNSIGNED NOT NULL,
  `status` tinyint(3) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `gosu_logs` (
  `idx` int(10) UNSIGNED NOT NULL,
  `ip` int(10) UNSIGNED DEFAULT NULL,
  `query` tinytext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `queriedAt` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `gosu_packs` (
  `id` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `title` tinytext COLLATE utf8mb4_unicode_ci NOT NULL,
  `synced` datetime(3) NOT NULL DEFAULT current_timestamp(3)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `gosu_pack_sets` (
  `packId` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `setId` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `gosu_sets` (
  `id` int(10) UNSIGNED NOT NULL,
  `artist` tinytext COLLATE utf8mb4_unicode_ci NOT NULL,
  `artistU` tinytext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `title` tinytext COLLATE utf8mb4_unicode_ci NOT NULL,
  `titleU` tinytext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `creatorId` int(10) UNSIGNED NOT NULL,
  `creator` tinytext COLLATE utf8mb4_unicode_ci NOT NULL,
  `genreId` tinyint(3) UNSIGNED NOT NULL,
  `languageId` tinyint(3) UNSIGNED NOT NULL,
  `source` tinytext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `tags` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` tinyint(3) UNSIGNED NOT NULL,
  `rankedAt` datetime DEFAULT NULL,
  `synced` datetime(3) NOT NULL DEFAULT current_timestamp(3),
  `keyword` text COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


ALTER TABLE `gosu_beatmaps`
  ADD PRIMARY KEY (`id`),
  ADD KEY `set` (`setId`),
  ADD KEY `hash_md5` (`hash_md5`),
  ADD KEY `status` (`status`),
  ADD KEY `mode` (`mode`);

ALTER TABLE `gosu_logs`
  ADD PRIMARY KEY (`idx`);

ALTER TABLE `gosu_packs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `synced` (`synced`);

ALTER TABLE `gosu_pack_sets`
  ADD KEY `packId` (`packId`),
  ADD KEY `setId` (`setId`);

ALTER TABLE `gosu_sets`
  ADD PRIMARY KEY (`id`),
  ADD KEY `rankedAt` (`rankedAt`,`synced`),
  ADD KEY `status` (`status`,`rankedAt`,`synced`);


ALTER TABLE `gosu_logs`
  MODIFY `idx` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;


ALTER TABLE `gosu_beatmaps`
  ADD CONSTRAINT `gosu_beatmaps_ibfk_1` FOREIGN KEY (`setId`) REFERENCES `gosu_sets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE `gosu_pack_sets`
  ADD CONSTRAINT `gosu_pack_sets_ibfk_1` FOREIGN KEY (`packId`) REFERENCES `gosu_packs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `gosu_pack_sets_ibfk_2` FOREIGN KEY (`setId`) REFERENCES `gosu_sets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;

설정 파일 구조

파일 이름을 osu!BeatmapMirror.cfg로 실행 파일과 동일한 폴더에 저장하세요 :)

[WS]
Prefix=
TLSOnly=0
Fallback=

[DB]
ConnectionString=Server=localhost;User=;Password=;Database=;oldguids=true

[KEY]
API=
Id=
Pw=
LastCheckTime=2019-04-12T18:28:24
LastSummaryTime=2019-03-11T00:00:00
Session=
UserAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0

[EXP]
Session=Welcome,.*?/u/(?<id>\d+).*?>(?<name>.+?)<|var\s*currentUser\s*=\s*{"id":(?<id>\d+).*?,"username":"(?<name>.+?)"
Creator=Creator:.*?/u/(?<id>\d+).*?>(?<name>.+?)<|"creator":"(?<name>.+?)","user_id":(?<id>\d+)
SetId=//b\.ppy\.sh/thumb/(\d+)

[ENV]
Storage=
LogPath=
ResponseTimeout=10
FavoriteMinimum=2
SyncInterval=10800
BeatmapList=0,11,12,4