
ãã°å°çšDiscordBOTäœã£ãŠã¿ã ïœHTTPã§ç°¡åçºèšBOTïœ
ããã«ã¡ã¯Rcatã§ãã
æè¿Pythonã§ããããäœã£ãŠããã®ã§ãããããŸã«ããŸãåããŠãªãã£ãããéåžžé転äžã«ã¡ãããšåããŠãããæ°ã«ãªã£ãããããã§ãããâŠã
æ§ã
ãªã¢ããªãäœãäžã§ãã¡ãã¡äžåãã€ãã°ãèŠãã®ãé¢åã§ããâŠã
ãããªã¢ã«ã¿ã€ã ã§ãã£ããã¢ããªã«åºåããã°ãããã !
ãšããããã§ãã£ãŠãããŸãã
ã¯ããã«
å©çšèŠçŽ
æ å ±ãäœåã®æŽ»çšæã¯äºåã«å©çšèŠçŽãã確èªãã ããã
ã³ã¡ã³ãã«ã€ããŠ
å©çšèŠçŽã®ã¬ã€ãã©ã€ã³ã確èªã®äžã³ã¡ã³ãããŠãã ãã
æŠèŠãšç°¡åãªèª¬æ
ããŠãä»åäœãã®ã¯å€éšããå
¥åãããæååããã®ãŸãŸçºèšããDiscordã®botã§ãã
ã¿ã€ãã«ã§ã¯ãã°å°çšãšèšã£ãŠããŸãããããã«ãããããæ§ã
ãªäœ¿ãéããããšæã£ãŠããŸãã
åäœèª¬æ
å ·äœçãªåäœã¯æ¬¡ã®éãã§ãã
çºèšããããã£ã³ãã«ãšããã¹ããæ·»ããŠãå°çšã®URLã«ã¢ã¯ã»ã¹ãã
Discordå ã®æå®ãããã£ã³ãã«ã«æå®ããããã¹ããçºèšããã
ããã£ãŠã·ã³ãã«ã§ãã
ããããããšã§äœãã§ããã®ããšãããšãäŸãã°ãµãŒããŒäžã§åããŠããæ§ã
ãªããã°ã©ã ã«äœããã£ãæã®ãã°åºåãšããŠããã®URLã«ã¢ã¯ã»ã¹ãããšããæ©èœãæããããšã©ãã§ããããïŒ
äœããã£ãããªã¢ã«ã¿ã€ã ã§ãã°ãéç¥ãšããŠé£ãã§ãããšããä»çµã¿ã®æ§ç¯ãã§ããŸãã
ããã§ã¯äœ¿ãæ¹ã®æ¹ãèŠãŠãããŸãããã
å ·äœçãªäœ¿ãæ¹(GET)
ãŸããæåã«æãç°¡åãªGETã䜿ã£ããã°åºåã®æ¹æ³ã説æããŸãã
GETãšããã®ã¯ç°¡åã«èšã£ãŠããŸãã°æ®éã®ã¢ã¯ã»ã¹ã§ãã
ãã ãããã®æã«URLã®åŸãã«ãã©ã¡ãŒã¿ãŒãæå®ããããšãã§ããŸãã
å
·äœçã«ã¯URLã®æåŸã«"?"ãæžãããã®åŸããŒãšå€ã"="ã§ã€ãªããŠæžããŠãããŸãã
å®éã®äŸããã¡ãã
ãã£ã³ãã«ãšããŠlogtestããã°ã®å
容ãšããŠlogãæå®ããŠããŸãã
ãã®URLã«å¯ŸããŠã¢ã¯ã»ã¹ãããšDiscordã§ã¯æ¬¡ã®ãããªç¶æ
ã«ãªããŸãã

ä»å補äœããbotã¯æå®ããããã£ã³ãã«ããªãå Žåãèªåçã«äœæããæ©èœãã€ããŠããã®ã§ãäºåæºåãæ¥œã
ã§ãã
æå®ããlogtestãã£ã³ãã«ãäœæããããã®äžã«æå®ããã¡ãã»ãŒãžã§ãã"ãã¹ãã®ãã°ã§ã"ãšããã¡ãã»ãŒãžãæçš¿ãããŠããŸãã

ããããä»ããŠäœããæäœãããšããã®ã§ãªããã°ããããã£ãbotã1å°äœã£ãŠããã ãã§è²ã ã§ãããã§ããã
å ·äœçãªäœ¿ãæ¹(POST)
次ã¯ãã¹ãã§ãã
URLã«ã¯é·ãã®äžéããããããå Žåã«ãã£ãŠã¯ãã°ãé·ãããŠãšã©ãŒã«ãªã£ãŠããŸãå¯èœæ§ããããŸãã
ãã®ããã100æåãè¶
ããããã§ããã°ãã¹ãã«ããŠæçš¿ããæ¹ãç¡é£ã§ãã
ãã©ã¡ãŒã¿ãŒã¯Getã®æãšåãã§JSONããã£ãšããŠéãä»ããŸãã
ãªããDiscordã®ã¡ãã»ãŒãžæåæ°äžéã¯2000ã§ããããã¯è¶
ããªãããã«ããŠãã ããã
Pythonã§æžããšæ¬¡ã®ããã«ãªããŸãã
import requests
url = "http://localhost:25055/log"
data = {
"channel":"posttest",
"log":"POSTã®ãã¹ãã¡ãã»ãŒãžã§ã"
}
requests.post(url, json=data)ãã¡ããå®è¡ãããšæ°ãããã£ã³ãã«ãäœæããããã°ãæçš¿ãããŠããããšã確èªã§ããŸãã

BOTã®å°å ¥
ãŸããæåã«Discordã®ããããäœã£ãŠãµãŒããŒã«å°å
¥ããŠãã ããã
åºåã«å¿
èŠãªãã£ã³ãã«ãªã©ã¯èªåã§äœæãããããäºåã«çšæããå¿
èŠã¯ãããŸãããéã«ãããã£ãæš©éããªããšãšã©ãŒã«ãªã£ãŠããŸããŸãã®ã§ã泚æãã ãããç§ã®é¢åãªã®ã§ç®¡çè
ã§å
¥ããŸããã
ãããã¢ã«ãŠã³ãã®äœãæ¹ã«ã€ããŠã¯ã以äžã®èšäºã§ç޹ä»ããŠããŸãã®ã§ãåèã«ããŠãã ããã
é
åžããŠããããã±ãŒãžã®å
容ã¯ä»¥äžã®éãã§ãã
åæã®äœæã¯Windowsã§çšŒåã¯Linuxã§è¡ã£ãŠããŸãã

æ¬äœã¯èªåç°å¢æ§ç¯å¯Ÿå¿ã§ãã
OSã«åãããŠãããããã«çšæããstartã®ãããã䜿ã£ãŠèµ·åããŠãã ãããèªåã§ç°å¢æ§ç¯ããç«ã¡äžãããŸã§ãè¡ãããŸãã
詳ããã¯ä»¥äžã®Pythonã®ã€ã³ã¹ããŒã«æ¹æ³ã§è§£èª¬ããŠããŸãã
ãŸã Pythonãã€ã³ã¹ããŒã«ããŠããªããšããæ¹ããã¡ããèŠãŠã€ã³ã¹ããŒã«ããŠãã ããã
äºåæºåãšããŠã¯ãäžçªäžã®ããŒã¯ã³ã®ãã¡ã€ã«ã«ãããã®ããŒã¯ã³ãæžã蟌ãã§ãããŠãã ãããããããªããšèµ·åã§ããŸããã
ãããããªã³ã©ã€ã³ã«ãªã£ãããšã確èªããããå ã«é²ãã§ãã ããã
ã¯ã©ã€ã¢ã³ãåŽã®å°å ¥
å°çšã¯ã©ã€ã¢ã³ãã®äœ¿çš
äžã«èª¬æããŠããããã«ãèªåã§ã¢ã¯ã»ã¹ã§ãã人ã¯ããã§ãæ§ããŸããã
ããã°ã©ã ã«åã蟌ãã«ããããå°çšã®ã¯ã©ã¹ãäœæããŸããã
äœ¿ãæ¹ã¯ä»¥äžã®éãã§ãã
ãŸãæåã«ã€ã³ããŒãããŠã€ã³ã¹ã¿ã³ã¹ããŸãã
ã€ã³ã¹ã¿ã³ã¹æã«ã¯ããã£ã³ãã«ã®ååãšãããã皌åããŠãããµãŒããŒã®ã¢ãã¬ã¹ãå
¥åããŸãã
ãããã®æ¹ã§WebãµãŒããŒã®ããŒãçªå·ãå€ããŠããå Žåã¯ãããŒãã®èšå®ãå¿
èŠã§ãã
ãããŠã€ã³ã¹ã¿ã³ã¹ãªããžã§ã¯ãã®logã¡ãœãããå©ãã ã
>>>import loggingbot_client as LC
>>>l = LC.LoggingbotClient(Name="RcatTest",Server="192.168.0.4")
>>>l.log("ãŠããšã ãïœãâ")å®è¡çµæããã¡ã
èªåçã«ãã£ã³ãã«ãäœæãããããã«çºèšãããŠããŸãã

ã¡ãªã¿ã«ã¯ã©ã¹ã®äžèº«ã¯æ¬¡ã®ããã«ãªã£ãŠããŸãã
Discordã®botãéåæãªã®ã§ããããã£ãéœåã®ããã°ã©ã ã«å¯Ÿå¿ã§ããããã«aiohttpã䜿ã£ã颿°ãããŒã¹ã«äœæããŠããã®ãç¹åŸŽã§ãã
ã§ãã®ã§ãä»ã®botã®äžãã䜿ãå Žåãªã©ã¯"await log_async()"ã®ãããªåœ¢ã§äœ¿ãããšãã§ããŸãã

ãŸããäžã®æ¹ã§èª¬æããŠããŸããã§ããããå®ã¯ãã°ã®æç« ã¯ãã¬ãŒã³ããã¹ãã®ãã®ã§ã¯ãªããbase64ã«ããŠããéããšããããšãã§ããŸãã
ãã¹ãã ãšå¹³æ°ãããããŸããããã©ããªæåãéããããšããŠãæ£åžžã«åä¿¡ã§ããããã«ãšããæãããããŸãã
ãã³ã¬ãŒãã§æ»ãå€ããã°ãž
äžã®æ¹æ³ã¯ãã°ãåºåãããå Žåã颿°ã«ãã°åºåã远å ããå¿
èŠããããŸãã
ãããä»åãããã³ã¬ãŒã¿ãŒãå°å
¥ããŸãããããã䜿ãããšã§é¢æ°ãäžå倿Žããããšãªãããã°åºåã§ããå¯èœæ§ããããŸãã
以äžããµã³ãã«ã§ããããå®è¡ãããšã©ããªããšæããŸããïŒ

éåžžã®å®è¡é ã§èšãã°ããã¹ã1颿°ã§"Nekoãããã"ãããªã³ãããçµäºã§ãããä»å@loggingbotãšãããã³ã¬ãŒã¿ãŒã颿°ã®åã«ãããŸããã
ãã³ã¬ãŒã¿ãŒã¯æå®ããã颿°ã®ååŸã«è¿œå ã®åŠçãèšããããæ©èœã§ãã
ä»åã¯é¢æ°ãçµãã£ãåŸã®æ»ãå€ããã®ãŸãŸå
ã»ã©ç޹ä»ããlog颿°ã«æž¡ããŠãããã«çºèšãããæ©èœã远å ã§ããŸãã
ãªãã仿§äžæåååéå®ã§ãã
ã€ãŸããæåååãè¿ã颿°ã§ããã°ããã®ãã³ã¬ãŒã¿ãŒã远å ããŠãã°ã«æ»ãå€ãåºåãããããšãã§ããŸãã
å ã»ã©ã®ã¯ã©ã¹ãå®çŸ©ããã¢ãžã¥ãŒã«ã®æ«å°Ÿã«å ã»ã©ã®ãµã³ãã«ãèšè¿°ããŠå®è¡ãããšä»¥äžã®ããã«ãããã®æ¹ã«ãæååãåºåãããŸãã

ãã®ããã«é¢æ°ã«äžåæãå ããã«è¿œå ã®æ©èœãäžããããšãã§ããã®ããã³ã¬ãŒã¿ãŒã§ãã
å
šãæ°ããäœãããã°ã©ã ã§ã¯ãæåãããã®ãã°åºåãèæ
®ããŠããããããããŸããããæ¢åã®ãã®ã«è¿œå æ©èœãšããŠçµã¿èŸŒã¿ããå Žåã¯å©çšããŠã¿ãŠãã ããã
å±¥æŽæ©èœã§é£æé²æ¢(V1.1ã¢ããããŒã)
äŸãã°äœãããã®åé¡ãçºçããæã«ãã°ãåºåãããšãããšããŸãã
ãããŠãã®åé¡ãç¶ããŠãéããã£ãšãã°ãåºåãããŠããŸã£ãããªããªã倧å€ãªããšã«ãªããŸãããã
ãšããããã§ã¡ãã»ãŒãžå±¥æŽãæ®ããŠãç¹å®ã®ã€ã³ã¿ãŒãã«ä»¥å
ã®é£æã¯ç¡èŠãããããªèšèšã«ããŸããã
ä»åã®ã¢ããããŒãã§å€æŽããç®æã ãããã€ã©ã€ãããŠããŸãã
å
·äœçã«ã¯ã¡ãã»ãŒãžãããŒãšããŠãèŸæžã«çºèšæå»ãä¿æããŠããŸãã
ãã ãã¡ãã»ãŒãžããã®ãŸãŸäœ¿ããšãã®ãããé·ãããŒã«ãªã£ãŠããŸãå¯èœæ§ãããã®ã§ãä»åã¯MD5ããã·ã¥ãå©çšããŸããã
ãã®ããã·ã¥ã¯ãã¡ã€ã«ã®ãã§ãã¯ãµã ãªã©ã«ãçšããããŠãããã®ã§ãäžå®ã®é·ãã®å¯äžã®ããŒãçæããã®ã«ã¡ããã©ãããšèããŸããã

å®éã«äœ¿ã£ãŠã¿ããšãããªæãã§é£æããŠãå šãèšãããšãèããŠããããæå®ããæéãæ¥ãªãéãéä¿¡ãããŸããã

ãã®ã¢ããããŒãã«ããåæåã®åŒæ°ãå¢ããŠããŸãã®ã§ã泚æãã ããã
ã€ã³ã¿ãŒãã«ãç§ã§æå®ããããšã§ããã®æéã«éä¿¡ãããåãã¡ãã»ãŒãžãç¡èŠããããã«ãªããŸãã

loggingã©ã€ãã©ãªçšãã³ãã©ãŒ(V1.2ã¢ããããŒã)
Pythonã®æšæºã©ã€ãã©ãªã§ããloggingã©ã€ãã©ãªã䜿ã£ããã°åºåã«æ¬äœããã³ãã©ãšããŠè¿œå ã§ããããã«ããŸããã
詳ããã¯ä»¥äžã®èšäºãã確èªãã ããã
é åžæ å ±
é åžURL
以äžã®URLã§é
åžããŠããŸãã
å©çšèŠçŽã«åæã®äžããå©çšãã ããã
é åžæ å ±ã¯äžèšãã確èªãã ããã