#!load ntime.hsm ############################################## # Hamster Modul with functions regarding # # FAQ sending # # # # Written by Nikola Skoric # # # # Comments are in Croatian language # ############################################## #######Poziva slanje FAQova grupu po grupu######## sub checkfaq var($list, $i, $FAQPath) if (FileExists(HamPath + "faqs\faqs.ini")) $FAQPath = HamPath + "faqs\*.msg" $list = ListAlloc ListFiles( $list, $FAQPath ) $i = 0 while( $i < ListCount($list) ) if(IniRead(HamPath + "faqs\faqs.ini", "Frequency", ListGet($list,$i), 0 ) = 0) mjesecno(ListGet($list,$i)) endif if(IniRead(HamPath + "faqs\faqs.ini", "Frequency", ListGet($list,$i), 0 ) != 0) periodical(ListGet($list,$i), IniRead(HamPath + "faqs\faqs.ini", "Frequency", ListGet($list,$i), 0 )) endif inc( $i ) endwhile listfree( $list ) else $FAQPath = HamPath + "faqs\*.msg" $list = ListAlloc ListFiles( $list, $FAQPath ) $i = 0 while( $i < ListCount($list) ) create(ListGet($list,$i)) inc( $i ) endwhile listfree( $list ) endif endsub ############################################# #Send FAQ on monthly basis # # # #based on script sending FAQ on fortnightly # #basis - made by elfin # # # #adjustments made by # #Nikola Skoric # ############################################# #######poziva slanje FAQa grupe jednom mjesecno######## sub mjesecno($grupa) var ($god, $mjes, $dan, $now, $lastsent) decodetime(time, $god, $mjes, $dan) $now = str($dan, 2) + str($mjes, 2) + str($god) $lastsent = IniRead(HamPath + "faqs\faqs.ini", "LastSent", $grupa, 0 ) if ($lastsent <> 0) if ($god > int(copy($lastsent, 5, 4 ))) #salje ako je godina zadnjeg slanja prije trenutne posalji($grupa) IniWrite(HamPath + "faqs\faqs.ini", "LastSent", $grupa, $now) endif if ( ($mjes > int(copy($lastsent, 3, 2 ))) && ($god = int(copy($lastsent, 5, 4 )))) #salje ako je mjesec zadnjeg slanja ove godine, prije trenutnog mjeseca posalji($grupa) IniWrite(HamPath + "faqs\faqs.ini", "LastSent", $grupa, $now) endif else create($grupa) endif endsub #######poziva slanje FAQa grupe jednom u $period dana######## sub periodical($grupa, $period) var ($god, $mjes, $dan, $now, $lastsent, $limit) decodetime(time, $god, $mjes, $dan) $now = str($dan, 2) + str($mjes, 2) + str($god) $lastsent = IniRead(HamPath + "faqs\faqs.ini", "LastSent", $grupa, 0 ) if ($lastsent <> 0) # sad tu ide kod za slanje svakih $period dana. $limit = NickPastDate(int($period)) if ( (NickOlderDate($limit, $lastsent) == -1) || (NickOlderDate($limit, $lastsent) == 0)) posalji($grupa) IniWrite(HamPath + "faqs\faqs.ini", "LastSent", $grupa, $now) endif else create($grupa) endif endsub ############################## # salje FAQa odredjene grupe # ############################## sub posalji($grupa) var($InFile, $OutFile) $InFile = HamPath + "faqs\" + $grupa $OutFile = HamPath + "Groups\News.Out\" + $grupa FileCopy( $InFile, $OutFile ) print("Poslan FAQ ", $grupa, ".") endsub ################################################ # kreira entry FAQa odredjene grupe u faqs.ini # ################################################ sub create($grupa) var ($god, $mjes, $dan, $now) decodetime(time, $god, $mjes, $dan) $now = str($dan, 2) + str($mjes, 2) + str($god) IniWrite(HamPath + "faqs\faqs.ini", "LastSent", $grupa, $now) warning("Kreiran entry za FAQ ", $grupa, ". FAQ nije poslan.") endsub