diff --git a/.pnp.cjs b/.pnp.cjs index 74c1678..d61744d 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -48,8 +48,7 @@ const RAW_RUNTIME_STATE = ["simple-git", "npm:3.22.0"],\ ["systeminformation", "npm:5.21.22"],\ ["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"],\ - ["undici", "npm:6.2.1"],\ - ["yaml", "npm:2.3.4"]\ + ["undici", "npm:6.2.1"]\ ],\ "linkType": "SOFT"\ }]\ @@ -1014,8 +1013,7 @@ const RAW_RUNTIME_STATE = ["simple-git", "npm:3.22.0"],\ ["systeminformation", "npm:5.21.22"],\ ["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"],\ - ["undici", "npm:6.2.1"],\ - ["yaml", "npm:2.3.4"]\ + ["undici", "npm:6.2.1"]\ ],\ "linkType": "SOFT"\ }]\ @@ -2806,15 +2804,6 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }]\ - ]],\ - ["yaml", [\ - ["npm:2.3.4", {\ - "packageLocation": "./.yarn/cache/yaml-npm-2.3.4-8bb6dc2c0d-f8207ce430.zip/node_modules/yaml/",\ - "packageDependencies": [\ - ["yaml", "npm:2.3.4"]\ - ],\ - "linkType": "HARD"\ - }]\ ]]\ ]\ }'; diff --git a/package.json b/package.json index 10735d1..ff4056e 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,7 @@ "sequelize": "6.35.2", "simple-git": "3.22.0", "systeminformation": "5.21.22", - "undici": "6.2.1", - "yaml": "2.3.4" + "undici": "6.2.1" }, "devDependencies": { "@types/ms": "0.7.34", diff --git a/src/articles.yaml b/src/articles.yaml deleted file mode 100644 index f6a5d20..0000000 --- a/src/articles.yaml +++ /dev/null @@ -1,10 +0,0 @@ -articles: - - embed: - id: 338 - title: "[Animals] Chickens" - description: | - Chickens are a type of livestock in Farming Simulator 22, they are commonly raised for their eggs. To keep chickens healthy and productive, it is important to provide them with proper care and nutrition. - - Chickens primarily eat grains such as wheat, barley and sorghum. - - Taking care of chickens can be a rewarding experience in Farming Simulator 22, as they can provide a steady supply of eggs for your farm profits. Properly managing their nutrition and environment will help ensure their well-being and productivity. diff --git a/src/commands/academy.ts b/src/commands/academy.ts deleted file mode 100644 index 2550f8f..0000000 --- a/src/commands/academy.ts +++ /dev/null @@ -1,82 +0,0 @@ -interface IArticles { - articles: IArticleEmbed[]; -} -interface IArticleEmbed { - embed: { - id:number; // Article ID (news_id) - title:string; - description:string; - } -} -import yaml from 'yaml'; -import Undici from 'undici'; -import Discord from 'discord.js'; -import TClient from '../client.js'; -import MessageTool from '../helpers/MessageTool.js'; -import {readFileSync, writeFileSync} from 'node:fs'; -export default class Academy { - private static yaml_file:IArticles = yaml.parse(readFileSync('src/articles.yaml', 'utf-8')); - static async autocomplete(_client:TClient, interaction:Discord.AutocompleteInteraction<'raw'>) { - const filterArray = this.yaml_file.articles.map(x=>x.embed.title).filter(x=>x.startsWith(interaction?.options.getFocused())); - await interaction?.respond(filterArray.map(x=>({name: x, value: x}))); - } - static async run(client:TClient, interaction:Discord.ChatInputCommandInteraction<'cached'>) { - ({ - query: async()=>{ - const answer = interaction.options.getString('answer'); - const queryFound = this.yaml_file.articles.find(x=>x.embed.title === answer); - interaction.reply({content: 'This command is a trial run, it may stay or be removed in near future.', embeds: [new client.embed() - .setColor(client.config.embedColor) - .setTitle(queryFound.embed.title) - .setURL(`https://www.farming-simulator.com/newsArticle.php?news_id=${queryFound.embed.id}`) - .setDescription(queryFound.embed.description) - .setFooter({text: 'This information is provided by the contributors with their best FS knowledge. If you find any mistakes, please contact Toast.'}) - ]}); - }, - how_to_contribute: ()=>interaction.reply({embeds: [new client.embed() - .setColor(client.config.embedColor) - .setTitle('How to contribute to the Academy') - .setDescription(MessageTool.concatMessage( - 'If you want to show your support and contribute your knowledge to the academy command, you can do so by following the steps below:', - '1. Create a [GitHub account](https://github.com/signup) if you haven\'t already', - '2. Fork the [GitHub repository](https://github.com/AnxietyisReal/Daggerbot-TS/tree/master)', - '3. Navigate to the `articles.yaml` file inside the `src` directory.', - '4. Click the pencil icon to edit the file and add your article (**has to be closely related to official FSA article**) using the following format:', - '```yaml', - '- embed:', - ' id: # Article ID (/newsArticle.php?news_id=)', - ' title: # Embed title and search term, don\'t make it too long', - ' description: # Embed description, limit is 4096 and multi-line is supported', - '```', - )).setFooter({text: 'Or if you\'re not familiar with GitHub, you can contact Toast directly with your article'}) - ]}), - update: async()=>{ - if (!client.config.whitelist.includes(interaction.user.id)) return MessageTool.youNeedRole(interaction, 'bottech'); - const articles = await Undici.fetch('https://raw.githubusercontent.com/AnxietyisReal/Daggerbot-TS/master/src/articles.yaml').then(x=>x.text()); - writeFileSync('src/articles.yml', articles, 'utf8'); - await interaction.reply({embeds: [new client.embed() - .setColor(client.config.embedColorGreen) - .setTitle('Academy file updated') - .setDescription('The local file (`src/articles.yaml`) has been updated with the new information from the GitHub repository.') - ]}); - } - } as any)[interaction.options.getSubcommand()](); - } - static data = new Discord.SlashCommandBuilder() - .setName('academy') - .setDescription('Provides useful information from Farming Simulator Academy') - .addSubcommand(x=>x - .setName('query') - .setDescription('Queries the articles for given search term') - .addStringOption(x=>x - .setName('answer') - .setDescription('The search term') - .setRequired(true) - .setAutocomplete(true))) - .addSubcommand(x=>x - .setName('how_to_contribute') - .setDescription('Provides information on how to contribute to the academy command')) - .addSubcommand(x=>x - .setName('update') - .setDescription('Updates the local file with new information from GitHub repository')) -} diff --git a/yarn.lock b/yarn.lock index cec5249..d9c037a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -767,7 +767,6 @@ __metadata: systeminformation: "npm:5.21.22" typescript: "npm:5.3.3" undici: "npm:6.2.1" - yaml: "npm:2.3.4" languageName: unknown linkType: soft @@ -2321,10 +2320,3 @@ __metadata: checksum: 4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd languageName: node linkType: hard - -"yaml@npm:2.3.4": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: f8207ce43065a22268a2806ea6a0fa3974c6fde92b4b2fa0082357e487bc333e85dc518910007e7ac001b532c7c84bd3eccb6c7757e94182b564028b0008f44b - languageName: node - linkType: hard