/[sudobot]/trunk/src/services/SnippetManager.ts
ViewVC logotype

Diff of /trunk/src/services/SnippetManager.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 256 by rakin, Mon Jul 29 17:29:14 2024 UTC revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1  import { APIEmbed } from "discord-api-types/v9";  /**
2  import { MessageEmbedOptions } from "discord.js";  * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20  import { readFile, writeFile } from "fs";  import { readFile, writeFile } from "fs";
21  import path from "path";  import path from "path";
22  import DiscordClient from "../client/Client";  import DiscordClient from "../client/Client";
# Line 20  export type SnippetContainer = { Line 37  export type SnippetContainer = {
37    
38  export default class SnippetManager extends Service {  export default class SnippetManager extends Service {
39      snippets: SnippetContainer = {};      snippets: SnippetContainer = {};
40        filePath: string;
41    
42      constructor(client: DiscordClient) {      constructor(client: DiscordClient) {
43          super(client);          super(client);
44            this.filePath = path.resolve(process.env.SUDO_PREFIX ?? path.join(__dirname, '../..'), 'config/snippets.json');
45          this.load();          this.load();
46      }      }
47    
48      load() {      load() {
49          readFile(path.resolve(__dirname, '../..', 'config/snippets.json'), (err, data) => {          readFile(this.filePath, (err, data) => {
50              if (err) {              if (err) {
51                  console.log(err);                                  console.log(err);                
52              }              }
# Line 37  export default class SnippetManager exte Line 56  export default class SnippetManager exte
56      }      }
57    
58      write() {      write() {
59          writeFile(path.resolve(__dirname, '../..', 'config/snippets.json'), JSON.stringify(this.snippets), () => null);          writeFile(this.filePath, JSON.stringify(this.snippets), () => null);
60      }      }
61    
62      set(guildID: string, name: string, content: string, files: string[] = []): void {      set(guildID: string, name: string, content: string, files: string[] = []): void {
         if (!this.snippets[guildID]) {  
             this.snippets[guildID] = [];  
         }  
   
63          this.snippets[guildID].push({          this.snippets[guildID].push({
64              name,              name,
65              content,              content,
# Line 98  export default class SnippetManager exte Line 113  export default class SnippetManager exte
113              if (this.snippets[guildID][i].name === name) {              if (this.snippets[guildID][i].name === name) {
114                  for await (const file of this.snippets[guildID][i].files) {                  for await (const file of this.snippets[guildID][i].files) {
115                      try {                      try {
116                          await deleteFile(path.resolve(__dirname, '../../storage', file));                          await deleteFile(path.resolve(process.env.SUDO_PREFIX ?? path.join(__dirname, '../..'), 'storage', file));
117                      }                      }
118                      catch (e) {                      catch (e) {
119                          console.log(e);                                          console.log(e);                
# Line 120  export default class SnippetManager exte Line 135  export default class SnippetManager exte
135              }              }
136          }          }
137      }      }
 }  
138    }

Legend:
Removed from v.256  
changed lines
  Added in v.393

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26