From 473b327ceed3afb5e5683002b39fd9c1947cb25a Mon Sep 17 00:00:00 2001
From: Kelly Rauchenberger <fefferburbia@gmail.com>
Date: Thu, 1 Mar 2018 16:03:16 -0500
Subject: Redesigned persistent data formta

This is the start of a project to add imagery to the bot's output. We began by rewriting the scraper to use a SQLite datafile instead of dumping achievement names to a text file. This allows storage of additional information about each achievement, and allows for more sophisticated scraping.

Profiles to be scraped can be added on the command line using the scraper script, instead of being specified in a config file. The scraper can conduct full or delta scrapes; in a delta scrape, only each profile's recent games are scraped, whereas they are all scraped in a full scrape.

When a game is scraped for the first time, images from the store page of that game are saved locally to be used by the bot. The bot has been altered to not use Twitter, and instead generate a pixelated image based on an image from the game of the chosen achievement. This is just for development purposes. It also crashes occasionally due to picking an achievement from a game that does not have any images saved.

Sprites of the moons from Odyssey have been included in the repository. A short message denoting their copyright is included.
---
 schema.sql | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 schema.sql

(limited to 'schema.sql')

diff --git a/schema.sql b/schema.sql
new file mode 100644
index 0000000..61fdc45
--- /dev/null
+++ b/schema.sql
@@ -0,0 +1,32 @@
+CREATE TABLE `profiles` (
+  `profile_id` INTEGER PRIMARY KEY,
+  `profile_path` VARCHAR(255) NOT NULL
+);
+
+CREATE UNIQUE INDEX `profile_by_path` ON `profiles`(`profile_path`);
+
+CREATE TABLE `games` (
+  `game_id` INTEGER PRIMARY KEY,
+  `steam_appid` INTEGER NOT NULL,
+  `moon_image` VARCHAR(255) NOT NULL
+);
+
+CREATE UNIQUE INDEX `game_by_appid` ON `games`(`steam_appid`);
+
+CREATE TABLE `achievements` (
+  `achievement_id` INTEGER PRIMARY KEY,
+  `game_id` INTEGER NOT NULL,
+  `title` VARCHAR(255) NOT NULL
+);
+
+CREATE TABLE `dids` (
+  `profile_id` INTEGER NOT NULL,
+  `achievement_id` INTEGER NOT NULL,
+  `achieved_at` DATETIME NOT NULL
+);
+
+CREATE TABLE `images` (
+  `image_id` INTEGER PRIMARY KEY,
+  `game_id` INTEGER NOT NULL,
+  `filename` VARCHAR(255) NOT NULL
+);
-- 
cgit 1.4.1

