今回作るもの
1.discord上でURL解析を行うコマンドを実行
2.メッセージからURLを取り出す
3.node-fetchを利用してNortonSafeWebでサイトの安全性をチェック
4.結果をサイトのHTMLから取得
5.1
が送信されたチャンネルに結果を送信
必要なもの
・node.js => node.js
・discord.js => npm i discord.js
・node-fetch => npm i node-fetch
コード
constdiscord=require("discord.js");constfetch=require("node-fetch");constclient=newdiscord.Client();constprefix="!"client.on("message",asyncmessage=>{constargs=message.content.slice(prefix.length).trim().split(/ +/g);constcommand=args.shift().toLowerCase();if(command==="url"){try{consturl=args[0];if(!url)returnmessage.channel.send("エラー : URLを指定して下さい。")fetch(`https://safeweb.norton.com/report/show?url=${encodeURI(url)}&ulang=jpn`).then(res=>res.text()).then(norton=>{if(norton.indexOf("安全性")!=-1){message.channel.send({embed:{title:"結果は安全です。",description:`ノートン セーフウェブが ${url}を分析して安全性とセキュリティの問題を調べました。`,footer:{text:"Powered by Norton Safeweb"},color:0xffd700}})}elseif(norton.indexOf("[注意]")!=-1){message.channel.send({embed:{title:"結果は注意です。",description:`[注意]の評価を受けた Web サイトは少数の脅威または迷惑を伴いますが、赤色の[警告]に相当するほど危険とは見なされません。サイトにアクセスする場合には注意が必要です。`,footer:{text:"Powered by Norton Safeweb"},color:0xffd700}})}elseif(norton.indexOf("警告")!=-1){message.channel.send({embed:{title:"結果は警告です。",description:`これは既知の危険な Web ページです。このページを表示**しない**ことを推奨します。`,footer:{text:"Powered by Norton Safeweb"},color:0xffd700}})}else{message.channel.send({embed:{title:"結果は未評価です。",description:`このサイトはまだ評価されていません。`,footer:{text:"Powered by Norton Safeweb"},color:0xffd700}})}});}catch(err){message.channel.send("エラー : 解析中にエラーが発生しました。")}}});
使い方
!url <解析したいURL>
で利用することができます!
最後に
初めての投稿なのでおかしいところや、わかりにくいところがあればコメントで教えて頂きたいです!