ãã®ãã©ã°ã€ã³ã®ç®ç
ãã®ãã©ã°ã€ã³ã¯ä»¥äžã®ããšãå®çŸããŸãïŒ
-
Discourse ãµãŒããŒãä»ã㊠Discord ããããåäœãããäž¡ã·ã¹ãã ã飿ºãããæ©èœãæäŸããŸãããã®ãªããžããªããã©ãŒã¯ããç°¡å㪠Ruby ã³ãŒãã远å ããããšã§ããããããããæ©èœãå®è£ ã§ããŸãã
-
æ¢åã®æ©èœã¯äŸã䟿å©ãªãŠãŒãã£ãªãã£ãšããŠæ©èœããŸãïŒ
- ç¹å®ã®æ¡ä»¶ãæºããã³ã³ãã³ãã®åæ¹åèªåæçš¿ãæäŸããŸãã
- ä»»æã®ã¿ã€ãã³ã°ã§ã¡ãã»ãŒãžã Discourse ã«ã³ããŒããã³ãã³ã
- Discord ãµãŒããŒã®ããŒã«ã¡ã³ããŒã·ãããš Discourse ã€ã³ã¹ã¿ã³ã¹ã®ã°ã«ãŒãã¡ã³ããŒã·ãããåæãããã³ãã³ã
ãã®ãã©ã°ã€ã³ã¯ãè¿œå æ©èœãå®è£ ããããã®æ¡åŒµå¯èœãªã¹ã±ã«ãã³ãæäŸããŸããäžè¬çã«æçšãªè¿œå æ©èœã® PR ã¯æè¿ããŸãã
ãããã¯åæã³ãã³ããã®ãã®ã§ã¯ãªããå¯èœãªãããçžäºäœçšã®äžäŸã§ããã¹ã¯ãªãŒã³ã·ã§ããã® 2 çªç®ã®ã³ãã³ãã¯éçºäžã«éæšå¥šãšãªããŸããïŒïŒ
èšå®ã«ã¯ããçšåºŠã®è€éãã䌎ããŸãããäž¡ã·ã¹ãã ã®ãã¡ã³ã§ãå°ãªããšãæ©èœçã»æŠå¿µçãªã¬ãã«ã§åã·ã¹ãã ã®ä»çµã¿ãçè§£ããæéãå²ãææ¬²ãããæ¹ã«ã¯æé©ã§ãããã®ãã©ã°ã€ã³ãæå€§éã«æŽ»çšããã«ã¯ãDiscourse ãš Discord ã®ãŠãŒã¶ãŒç®¡çã®ä»çµã¿ã«é¢ããåºç€ç¥èãå¿ èŠã§ãã
ãããã³ãã³ã
以äžã® 4 ã€ã®ã³ãã³ãããããŸãïŒ
- Ping!
- !disckick
- !discsync
- !disccopy
Ping!
ããããå¿çããŠããã確èªããã«ã¯ããPing!ããšå
¥åããŠãã ããããããã¯ã
: Pong!ããšå¿çããã¯ãã§ããçŽ æŽãããã§ããïŒDïŒããã¯ã¡ãã£ãšãããã¿ã§ãïŒïŒ
!disckick <min_trust_level: ããã©ã«ã 2>
ãã®ã³ãã³ããå ¥åãããšãDiscourse äžã«ååšããããæå®ããå€ããäœãä¿¡é Œã¬ãã«ïŒTrust LevelïŒãæã€ãŠãŒã¶ãŒãå šå¡ããã¯ãããŸããå€ãæå®ããªãå Žåãããã©ã«ã㯠2 ã§ãã
äŸïŒ
!discsync <clean up: ããã©ã«ã false, min_visibility: ããã©ã«ã 0, include automated groups: ããã©ã«ã false>
ãã®ã³ãã³ãã¯ãæå®ãããæ¡ä»¶ïŒãŸãã¯æå®ããªãå Žåã¯ããã©ã«ãïŒã«äžèŽãããã¹ãŠã®ã°ã«ãŒãã Discord ã®ããŒã«ã«ã³ããŒããããšããŸãããã®åŸãDiscourse ã®ã°ã«ãŒãã¡ã³ããŒã·ããã«åºã¥ããŠããŒã«ãåããããšããŸããããã¯äžæ¹åã®åæã®ã¿ã§ãDiscourse ã®ããŒã¿ã¯äžå倿ŽãããŸããã
!disccopy <number_of_messages> <optional_target_category_name> <optional_target_topic_name>
Discord ãã£ããå ãããDiscord ã®ã¡ãã»ãŒãžå±¥æŽã Discourse ã€ã³ã¹ã¿ã³ã¹ã«ã³ããŒã§ããŸããäžåºŠã«æ°åä»¶ã®ã¡ãã»ãŒãžãåŠçå¯èœã§ããããã®å Žåã¯æéãããããŸãã
åæ¹åéä¿¡
èšå®ã¯ä»¥äžã®éãã§ãã
- ãã©ã°ã€ã³èšå®ã§ãDiscord ã®ãAnnouncements Channelããæå®ã§ããŸãã
- å²ãåœãŠããã Discord ã® Announcements Channel ã«ã¡ãã»ãŒãžãå ¥åãããšããã©ã°ã€ã³èšå®ã§æå®ããã Discourse ã®ãããã¯ã«æçš¿ãããŸãã
- 誰ããç¹å®ã®ã«ããŽãªã«æçš¿ããããæ°ãããããã¯ãäœæãããïŒãŸãã¯ãã®äž¡æ¹ïŒããå Žåã«ãDiscord ã® Announcements Channel ã«æçš¿ãã Discourse ã®ã«ããŽãªãªã¹ããèšå®ã§ããŸãã
- èªååãããã¡ãã»ãŒãžåäœã®ãã£ããã³ããŒïŒãã£ã³ãã«åãã«ããŽãªåãšäžèŽããå Žåããã®ãã£ã³ãã«ã®ã¡ãã»ãŒãžãèªåçã« Discourse ã«ã³ããŒãããŸãã

ããã«ãdiscordrb API ããµããŒããã Discord ã€ãã³ãã管çããããã®æ°ãããã¡ã€ã«ã远å ããŸãããAnnouncements ããžãã¯ãæåã®äŸã§ãïŒã³ãã¥ããã£å
šäœã«æçšã§ããã°ãæ°ãããã®ãéçºã㊠PR ãéã£ãŠãã ããïŒã
NBïŒDiscord ãã Discourse ã«ã³ããŒãããã¡ãã»ãŒãžã«ã€ããŠã¯ããŠãŒã¶ãŒã¯æ£ãã衚瀺ãããŸãïŒãã®ãŠãŒã¶ãŒã Discord ãã°ã€ã³ã䜿çšã㊠Discourse ã«ãã°ã€ã³ããŠããå ŽåïŒãã€ãŸããDiscord ãããã¯ãŠãŒã¶ãŒããããã³ã°ã§ããŸãã
ãã®ãã©ã°ã€ã³ã®çŸç¶
ãã®ãã©ã°ã€ã³ã¯èšå®ãè€éã§ããããã¯é¿ããããªãããšã§ããã
ããããäžåºŠã»ããã¢ãããå®äºããã°ã䜿çšããã®ã¯åäŸã®ãéã³ã®ããã«ç°¡åã§ãã
ã³ãŒãã¯çŸåšããŒã¿çãšããŠæ±ã£ãŠãã ããããã¹ãæžã¿ã§ãããæ¬çªç°å¢ã§ãåäœããŠããŸããããã°ãå«ãŸããŠããå¯èœæ§ããããŸããæ¬çªç°å¢ã®ã¡ã€ã³ Discord ãµãŒããŒã«é©çšããåã«ããŸãã¯æ°ãã Discord ãµãŒããŒã§ãã¹ãããããšãæšå¥šããŸãïŒæ°èŠæ§ç¯äžã®å Žåã¯é€ããŸãïŒã
ãã°ãçºçããå ŽåãDiscourse ã€ã³ã¹ã¿ã³ã¹ããã Discord ã€ã³ã¹ã¿ã³ã¹ã®æ¹ã圱é¿ãåããããã§ãããªããªããDiscourse åŽã«ã¯å€æŽãå ããããªãããã§ãããã ããã»ãšãã©ã®äºè±¡ã¯å埩å¯èœã§ãããéåžžã¯æäœãç¹°ãè¿ãã ãã§åé¡ã解決ã§ããŸããDiscourse ã¯ã¡ã³ããŒã·ãããšã°ã«ãŒãæ å ±ã®ãã¹ã¿ãŒãšããŠäœ¿çšããããã®ããŒã¿ã䜿çšã㊠Discord ãµãŒããŒã®ã¡ã³ããŒã·ãããšããŒã«ãæŽæ°ãããŸãã
èšå®æé
åææ¡ä»¶
- 管çè æš©éãæã€ Discord ãµãŒããŒ
- Discord ã¢ããªïŒäžèšåç §ïŒ
- Discord ãããïŒäžèšåç §ïŒ
- Discourse ãµãŒããŒãžã® ssh ã«ãŒãã¢ã¯ã»ã¹
- ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããããã® app.yml ã®æŽæ°
- ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ãããšãã°ã€ã³ããŒãžã« Discord OAuth ãã°ã€ã³ã衚瀺ããããããDiscourse ã®ãã¹ãŠã®ãŠãŒã¶ãŒã¯ Discord OAuth ãã°ã€ã³ã§ãã°ã€ã³ããå¿ èŠããããŸãã
Discord ã¢ããª
ãã¡ãã«ã¢ã¯ã»ã¹ããŠã¢ããªãäœæããŠãã ããïŒ
ãNew Applicationããã¯ãªãã¯ããŸãã
ããããäœæããå¿ èŠããããŸãã以äžã®ãããªç»é¢ã«ãªããŸãïŒãpublicãã«ã¯ããªãããã«ããŠãã ããïŒïŒ
ãã©ãŠã¶ã§ããããæ¿èªããå¿ èŠããããŸãã詳现㯠OAuth2 - Documentation - Discord ãåç §ããŠãã ããã
ãããã®èšå®ãå®äºããããããŒã¯ã³ãã³ããŒããŠãã ãããåŸã§ Discourse ã«ãã®ããŒã¯ã³ãå ¥åããå¿ èŠããããŸãã
app.yml ã®å€æŽ
plugin
Discord Social Login ã Discourse ã³ã¢ã«ãã€ãã£ãã§çµã¿èŸŒãŸããçŸåšãå¿
èŠãªãã©ã°ã€ã³ã¯ããã ãã§ãïŒãã£ããŒ
ïŒ
ãã®åŸãéåžžéãããã³ããã§ ./launcher rebuild app ãå®è¡ããŠãã ããã
ããã§åé¡ãªãåäœããã¯ãã§ãã
Discourse ã®èšå®ç»é¢ã§ãããã®èªèšŒæ å ±ããŸã å ¥åããŠããªããããååãã«ãæã«ã³ã³ãœãŒã«ããã°ã«ãããã®èµ·å倱æã瀺ããšã©ãŒã衚瀺ãããå¯èœæ§ããããŸãïŒããããã graceful ã«åŠçããã¿ã¹ã¯ãæ®ã£ãŠãããå®äºæ¬¡ç¬¬ãã®éšåã¯åé€ããŸãïŒããã ãã害ã¯ãªããDiscourse èªäœã¯æ£åžžã«åäœããŸãã
Discourse ã®ç®¡çç»é¢ã«å ¥ã£ããããPlugin Settingsãã«ä»¥äžã®æ å ±ãå ¥åããŠãã ããïŒ
ID 㯠Discord ã®ã€ã³ã¿ãŒãã§ãŒã¹ããååŸããŸãããããã® ID ãã³ããŒã§ããããã«ããã«ã¯ãéçºè ã¢ãŒããæå¹ã«ããå¿ èŠããããŸããDiscord ã§ãSettingsãâãAppearanceãâãADVANCEDããžé²ã¿ãéçºè ã¢ãŒããæå¹ã«ããŠãã ããïŒ
ãã®åŸãã€ã³ã¿ãŒãã§ãŒã¹ãã ID ãååŸã§ããŸããäŸïŒ
Discord OAuth èšå®ãå ¥åããå¿ èŠããããŸããClient ID ãš Secret ã¯ãå ã»ã©äœæããåã Discord ã¢ããªããååŸããŸãã
ããããèšå®ããããLinux ã®ã«ãŒãããã³ããã«æ»ãã以äžãå ¥åããŠãã ããïŒ
./launcher restart app
Discord ãš Discourse ãµãŒããŒãæ£ããèšå®ãããŠããã°ããããããµãŒããŒã«åå ããŠããã®ã確èªã§ããã¯ãã§ãã
äžãäžããããããŠã³ããå ŽåïŒãªãã©ã€ã³ã«ãªãïŒãåãæé ãç¹°ãè¿ããŠåèµ·åãããå¿ èŠããããŸããDiscourse ã³ã¢ãµãŒããŒããã®ãããã®ç¬ç«æ§ãé«ããããšã¯ä»åŸã®èª²é¡ã§ãããšã¯ããã鷿鿬çªç°å¢ã§ããããéçšããŠããŸãããããŸã ããŠã³ããããšã¯ãããŸããã
ä»åŸã®ã³ãã³ãã«ã€ããŠ
Discourse ãš Discord ã®é£æºã掻çšããã³ãã¥ããã£å šäœã«æçšã ãšèããããæ°ããã³ãã³ãã®ã¢ã€ãã¢ãããã°ãè¿ä¿¡ã§ãç¥ãããã ãããå®è£ ã®å¯èœæ§ãæ€èšããŸããNBïŒãã®ããã㯠Discourse ã®ç¯å²å€ã®ã¿ã¹ã¯ãå®è¡ãããã®ã§ã¯ãããŸããã
å¶éäºé
ãã®ãã©ã°ã€ã³ã®äž»ãªç®çã¯ããŠãŒã¶ãŒãèªèº«ã® Discord ãµãŒããŒã§ãDiscourse ãµãŒããŒãååæºãšããããããäœæããåºæ¬çãªã¡ã³ããŒã·ããç®¡çæ©èœãå®è¡ã§ããããã«ããããšã§ããããŸããå°æ¥ã®äž¡ã·ã¹ãã éã®è¿œå ã®ãããã®ãããªçžäºäœçšã®ããã®åºç€ãæäŸããŸãããããã䜿çšããåæ©ã®äžã€ã¯ãåã«ããããšãŠãé¢çœãããã§ãã
ãããã³ãã³ãã¯æ¬è³ªçã«ä»»æïŒad hocïŒã§ãã
æ¢ç¥ã®åé¡
-
ãµãŒããŒäžã§ rails console ã»ãã·ã§ã³ã«å ¥ããšãããããèªèº«ã®ã€ã³ã¹ã¿ã³ã¹ãèµ·åããŠããŸããŸããããã«ãããããããäºéã«å¿çããŠããããã«èŠããŸãïŒå®éã«ã¯ãããã 2 ã€èµ·åããŠããŸãïŒãrails console ã§ã¯ãããã¯ãã¯ãå¿ èŠãããŸããïŒ::DiscordBot::Bot.discord_bot.stopãšå ¥åããŠè¿œå ã®ãããã忢ããŠãã ããã -
âonlineâ Discourse ã¢ããã°ã¬ãŒãäžã¯ããããããã¢ããã°ã¬ãŒãããã»ã¹äžã«åèµ·åããç¶ãããããå°ããããã¹ãã«ãªããŸããããã¯ããŠã§ããµãŒããŒããåå²ããã¹ã¬ããã§ã¯ãªããç¬ç«ãã管çããã»ã¹ã§ããããå®è¡ããè¯ãæ¹æ³ãèŠã€ããããšã«é¢é£ããŠããŸãããã ããããã¯ãã¹ãŠç¡å®³ã§ãããšèããããŸããããããã®åºåã Discord ã®ç®¡çè ãã£ã³ãã«ã«ã®ã¿è¡šç€ºãããã®ã§ããã°ãæ°ã«ããã§ããããïŒãããããªãã«ãäžã« 2 åã®ã¿èªå·±ç޹ä»ãè¡ãããã«å€æŽãããããã»ãŒè§£æ±ºããŸããã
è¬èŸ
ãã®ãã©ã°ã€ã³ã®å®æãŸã§ã«é·ãæéãèŠããŸãããã@Wedgebertã@FoohonPie ãªã©ã®ããã¯ã©ãŒã®æ¹ã ã«æè¬ããŸããJeff ããã®å¯å€§ãªãæ¯æŽã«æè¬ããŸãããŸãã@angus ããã«ã¯æ¿å±ãšééçãµããŒãã®å¯Ÿå¿ã«æè¬ããŸãã
ãã®ãã©ã°ã€ã³ã¯ã以åã®æ®µéã§ @Watercolor_Games ãããè¡ã£ãä»äºã«è§Šçºããããã®ã§ããã@featheredtoast ãããæ§ç¯ãã Discord OAuth ãã©ã°ã€ã³ã«äŸåããŠããŸãã
ãŸããæºå
¬åŒã® Discord å¯Ÿå¿ discordrb Ruby ã©ã€ãã©ãª ãšãã·ã¹ãã ãã¢ã¯ã»ã¹å¯èœã«ããããã® Discord ããŒã ã®çŽ æŽãããåãçµã¿ã«äŸåããŠããŸããäŸåé¢ä¿ã®è§£æ±ºã«éåžžã«è¿
éã«å¯Ÿå¿ããŠããã @Falco ããã«ãæè¬ããŸãã
ãã¡ãããDiscourse ã®çŽ æŽããããã©ã°ã€ã³ãšã³ã·ã¹ãã ïŒãã£ããŒïŒïŒããªããã°ãããã¯äžå¯èœã§ããã
ãã®æé æžã®çŸç¶
æéãšãšãã«æ¹åããããã£ãŒãããã¯ãæè¿ããŸããäžæãªç¹ãæ®ã£ãŠããç®æãããã§ãããã











