package Ġmo e . sdl . qq online course bot Ċ Ċ import Ġjava . io . File Ċ import Ġjava . net . URL Decoder Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ val Ġregex For Meeting Code Ġ= ĠRegex (""" (( ? <= [: ï¼ļ ]\ s ? )\ d { 3 }- \ d { 3 }- \ d { 3 , 4 }| $\ d { 9 , 1 0 }^ |( ? <= \ s )\ d { 9 , 1 0 } (? =\ s )) """ Ġ) Ċ val Ġregex For Topic Ġ= ĠRegex (""" (? < =( ä¸»é¢ĺ | Topic )( :\ s | ï¼ļ \ s ? )) .* """) Ċ val Ġregex For Meeting StartTime Ġ= ĠRegex (""" (? < =( æĹ¶éĹ´ | Time )( :\ s | ï¼ļ \ s ? )) .* (? =- \ d ) """) Ċ val Ġregex For Password Ġ= ĠRegex (""" (? < =( å¯Ĩçłģ | Password )( :\ s | ï¼ļ \ s ? )) .* """) Ċ val Ġregex For Meeting EndTime Ġ= ĠRegex (""" (? <= \ d { 2 } :\ d { 2 }- ). *( ? =\ s \ () """) ĊĊ Ċ val Ġmeeting Time Formatter : ĠDateTime Formatter Ġ= ĠDateTime Formatter . of Pattern (" yyyy / MM / dd ĠHH : mm ") Ċ Ċ fun Ġjoin T encent Meeting ( code : ĠLong ) Ġ{ ĊĠĠĠ Ġif Ġ( code . toString (). length Ġin Ġ 9 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwin Ġ= Ġos Type Ġ== ĠOs Type . WINDOWS ĊĠĠĠĠĠĠĠ Ġval Ġcmd Ġ= Ġ( if Ġ( win ) Ġ" start Ġ" Ġelse Ġ" open Ġ") Ġ+ Ġ" we meet :// page / in meeting ? meeting _ code =$ code " ĊĠĠĠĠĠĠĠ ĠRuntime . get Runtime (). exec ( cmd ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġget Jar Location (): ĠFile Ġ{ ĊĠĠĠ Ġvar Ġpath : ĠString Ġ= ĠO L CB ot :: class . java . protection Domain . code Source . location . path ĊĠĠĠ Ġif Ġ( os Type Ġ== ĠOs Type . WINDOWS ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpath Ġ= Ġpath . substring ( 1 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( path . contains (" jar ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġpath Ġ= Ġpath . substring ( 0 , Ġpath . lastIndexOf ("/ ")) ĊĠĠĠĠĠĠĠ Ġreturn ĠFile ( URL Decoder . decode ( path , ĠChar sets . UTF _ 8 )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠFile ( URL Decoder . decode ( path . replace (" target / classes /", Ġ""), ĠChar sets . UTF _ 8 )) Ċ } Ċ Ċ fun Ġget Work Dir (): ĠFile Ġ{ ĊĠĠĠ Ġreturn ĠFile ( System . getProperty (" user . dir ")) Ċ } Ċ Ċ fun Ġget Cache Folder (): ĠFile Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= ĠFile ( get Work Dir (), Ġ" cache ") ĊĠĠĠ Ġif Ġ(! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġfile . mkdir s () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfile Ċ } Ċ Ċ val Ġos Type : ĠOs Type Ġby Ġlazy Ġ{ ĊĠĠĠ ĠSystem . getProperty (" os . name ") ?. lowercase ()?. run Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontains (" win ") Ġ-> ĠOs Type . WINDOWS ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" nix ", Ġ" nux ", Ġ" a ix "). any Ġ{ Ġcontains ( it ) Ġ} Ġ-> ĠOs Type . LINUX ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontains (" mac ") Ġ-> ĠOs Type . MAC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontains (" sun os ") Ġ-> ĠOs Type . SOL AR IS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠOs Type . OTHER ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġ?: ĠOs Type . OTHER Ċ } Ċ Ċ enum Ġclass ĠOs Type Ġ{ ĠWINDO WS , ĠLIN UX , ĠMAC , ĠSOL AR IS , ĠOTHER Ġ}