public void Dispose() { ThumbGenerator.Close(); DBUpdateQueue.Close(); host?.Stop(); host?.Dispose(); }
public static void Init(string user, string pass, string db) { _user = user; _pass = pass; _db = db; ThumbGenerator.Start(); DBUpdateQueue.Start(); }
void DoBuild(Dictionary <string, string[]> buildList) { foreach (string item in buildList.Keys) { Write($"Building: {item}...", false); string[] dir = Directory.GetFiles($@"{RinDB.BASE_DIR}/{item}", "*", SearchOption.AllDirectories); foreach (string f in dir) { string file = f.Replace("\\", "/"); file = file.Replace($@"{RinDB.BASE_DIR}/", ""); string name = Path.GetFileNameWithoutExtension(file); long epoch = long.Parse(name.Substring(1, name.IndexOf(']') - 1)); name = name.Remove(0, epoch.ToString().Length + 3); name = Uri.EscapeDataString(name); string id = file.ToBase60(); DBUpdateQueue.QueueCommand($"INSERT INTO images (id, fileuri, timeadded, name, isnsfw) VALUES('{id}', '{Uri.EscapeDataString(file)}', '{epoch}', '{name}', '{file.Contains("NSFW")}');"); //cmd.CommandText = $"INSERT INTO images (id, fileuri, timeadded, name, isnsfw) VALUES('{id}', '{Uri.EscapeDataString(file)}', '{epoch}', '{name}', '{file.Contains("NSFW")}');"; if (buildList[item] != null) { foreach (string tag in buildList[item]) { string tagID = tag.ToBase60(); //cmd.CommandText += $"INSERT INTO tagmap VALUES('{tagID}{id}','{id}', '{tagID}');"; DBUpdateQueue.QueueCommand($"INSERT INTO tagmap VALUES('{tagID}{id}','{id}', '{tagID}');"); } } //cmd.ExecuteNonQuery(); ThumbGenerator.QueueThumb(new ImageModel() { id = id, fileUri = $@"{RinDB.BASE_DIR}/{file}" }); } Write(" Done!"); } }