/[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 344 by rakin, Mon Jul 29 17:29:40 2024 UTC revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1    /**
2    * 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 18  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 35  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 {
# Line 92  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);                

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26