AniDB O'Matic - mIRC script for statistics

From AniDB
Revision as of 11:58, 23 January 2010 by AnimeNeko (talk | contribs) (Changed the way the state shows. It will hide it when the state is 0)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Copy the text and put it in notepad or so and name it StatWhoreing.mrc or a othername.mrc then do /load -rs othername.mrc to load it. After you copy the file into your mIRC directory.

If you want your MyList size in GB. and not that it automatic converts to mb,gb,tb change $bytes(%mylistsize).suf into $bytes(%mylistsize,g).suf then it will only show the size of your MyList in GB's

#                    Made By AnimeNeko Thx to PetriW For this Option                             #
#               Enable statwhoring in aom Use version 0.5.10.x or higher                         #
#                                        v0.4                                                    #
#    Replace XX:\aom\MyStats.ini to the correct Directory and filename. But choose INI in aom.   #
#                      Works In chat Channel and in Private Message.                             #
# Note in the Partially Watched status if you have everything seen and none partially seen it    #
# will only show Partially seen. The script hides the types where you don't have anything        #
#                                  partially seen in.                                            #

on *:load: { set %aom.file y:\aom\MyStats.ini }

menu channel,query {
  -
  AOM Stats
  .Mystats: mystats
  .Watched: watched
  .AnimeType
  ..TV Series: AnimeTypetv
  ..Specials: AnimeTypesp
  ..Movies: AnimeTypem
  ..Ova's: AnimeTypeova
  ..Web: AnimeTypeweb
  ..Other: AnimeTypeot
  ..Unknown: AnimeTypeun
  .Storage: storage
  .AniDB Stats: anidbstats
}

alias Anidbstats {
  if ($exists(%aom.file)) { 
    var %animecountt $readini(%aom.file, anidb, animecount)
    var %totalepst $readini(%aom.file, anidb, episodecount)
    var %Tfilescountt $readini(%aom.file, anidb, filecount)
    var %group $readini(%aom.file, anidb, groupcount)
    var %sizet $readini(%aom.file, anidb, size)
    var %length $readini(%aom.file, anidb, length)
    var %tvtotal $readini(%aom.file, animetypeTVSeries, total)
    var %specialstotal $readini(%aom.file, animetypeTVSpecials, total)
    var %movietotal $readini(%aom.file, animetypeMovies, total)
    var %ovatotal $readini(%aom.file, animetypeOVAs, total)
    var %webtotal $readini(%aom.file, animetypeWeb, total)
    var %othertotal $readini(%aom.file, animetypeOther, total)
    var %unknowntotal $readini(%aom.file, animetypeUnknown, total)
    var %year $int($calc( (%length ) / (60*60*24*365) ))
    var %weeks $int($calc( (%length ) / ( 60*60*24*7) - (%year * 365/7)  )) 
    var %days $int($calc( (%length ) / (60*60*24) - (%year *365 ) - (%weeks *7) ))
    var %hour $int($calc( (%length ) / (60*60) - (%year *365*24) - (%weeks *7*24) - (%days *24) ))
    var %mins $int($calc( (%length ) / (60) - (%year *365*24*60) - (%weeks *7*24*60) - (%days *24*60) - (%hour *60)) )
    say Anidb Stats: %animecountt Animes( $+ %tvtotal Series, %specialstotal Specials, %movietotal Movies, %ovatotal OVAs, %webtotal Web, %othertotal Other, %unknowntotal Unknown $+ ), %totalepst Episodes, %Tfilescountt Files, %group Groups, size $bytes(%sizet,g).suf To watch it all it takes %year Year %weeks Weeks %days Days %hour Hour and %mins Minutes
  } 
}

alias mystats {
  if ($exists(%aom.file)) { 
    var %username $readini(%aom.file, anidb, username)
    var %anidbepcount $readini(%aom.file, anidb, episodecount)
    var %animecount $readini(%aom.file, mylist, animecount)
    var %totaleps $readini(%aom.file, mylist, episodecount)
    var %Tfilescount $readini(%aom.file, mylist, filecount)
    var %mylistsize $readini(%aom.file, mylist, size)
    var %animewatched $readini(%aom.file, mylist, animewatched)
    var %animepartw $readini(%aom.file, mylist, animepartiallywatched)
    var %epswatched $readini(%aom.file, mylist, episodeswatched)
    var %fileswatched $readini(%aom.file, mylist, fileswatched)
    var %watchedsize $readini(%aom.file, mylist, watchedsize)
    var %tvmylist $readini(%aom.file, animetypeTVSeries, inmylist)
    var %specialsmylist $readini(%aom.file, animetypeTVSpecials, inmylist)
    var %moviemylist $readini(%aom.file, animetypeMovies, inmylist)
    var %ovamylist $readini(%aom.file, animetypeOVAs, inmylist)
    var %webmylist $readini(%aom.file, animetypeWeb, inmylist)
    var %othermylist $readini(%aom.file, animetypeOther, inmylist)
    var %unknownmylist $readini(%aom.file, animetypeUnknown, inmylist)
    say I have %animecount Animes( $+ $iif(%tvmylist = 0,,%tvmylist Series $+ $chr(44)) $iif(%specialsmylist = 0,,%specialsmylist Specials $+ $chr(44)) $iif(%moviemylist = 0,,%moviemylist Movies) $+ $iif(%ovamylist = 0,,$+ $chr(44) %ovamylist OVA's) $+ $iif(%webmylist = 0,,$+ $chr(44) %webmylist Web) $+ $iif(%othermylist = 0,,$+ $chr(44) %othermylist Other) $+ $iif(%unknownmylist = 0,,$+ $chr(44) %unknownmylist Unknown) $+ ), %totaleps Episodes( $+ $round($calc(%totaleps / %anidbepcount * 100 ),3) $+ % $+ ) of AniDB, %Tfilescount files, Total $bytes(%mylistsize,g).suf $+ .
  }
}

alias watched {
  if ($exists(%aom.file)) { 
    var %username $readini(%aom.file, anidb, username)
    var %anidbepcount $readini(%aom.file, anidb, episodecount)
    var %animecount $readini(%aom.file, mylist, animecount)
    var %totaleps $readini(%aom.file, mylist, episodecount)
    var %Tfilescount $readini(%aom.file, mylist, filecount)
    var %mylistsize $readini(%aom.file, mylist, size)
    var %animewatched $readini(%aom.file, mylist, animewatched)
    var %animepartw $readini(%aom.file, mylist, animepartiallywatched)
    var %epswatched $readini(%aom.file, mylist, episodeswatched)
    var %fileswatched $readini(%aom.file, mylist, fileswatched)
    var %watchedsize $readini(%aom.file, mylist, watchedsize)
    var %watchedlength $readini(%aom.file, mylist, lengthwatched)
    var %tvw $readini(%aom.file, animetypeTVSeries, allwatched)
    var %spw $readini(%aom.file, animetypeTVSpecials, allwatched)
    var %mw $readini(%aom.file, animetypeMovies, allwatched)
    var %ovaw $readini(%aom.file, animetypeOVAs, allwatched)
    var %webw $readini(%aom.file, animetypeWeb, allwatched)
    var %otw $readini(%aom.file, animetypeOther, allwatched)
    var %unw $readini(%aom.file, animetypeUnknown, allwatched)
    var %tvpw $readini(%aom.file, animetypeTVSeries, partwatched)
    var %sppw $readini(%aom.file, animetypeTVSpecials, partwatched)
    var %mpw $readini(%aom.file, animetypeMovies, partwatched)
    var %ovpw $readini(%aom.file, animetypeOVAs, partwatched)
    var %wpw $readini(%aom.file, animetypeWeb, partwatched)
    var %otpw $readini(%aom.file, animetypeOther, partwatched)
    var %unpw $readini(%aom.file, animetypeUnknown, partwatched)
    var %days $int($calc( (%watchedlength ) / (60*60*24)) )
    var %hour $int($calc( (%watchedlength ) / (60*60) - (%days *24) ))
    var %mins $int($calc( (%watchedlength ) / (60) - (%days *24*60) - (%hour *60)) )
    say Seen $calc(%animewatched + %animepartw) Animes ( $+ $iif(%tvw = 0,,%tvw Series $+ $chr(44)) $iif(%spw = 0,,%spw Specials $+ $chr(44)) $iif(%mw = 0,,%mw Movies) $+ $iif(%ovaw = 0,,$+ $chr(44) %ovaw OVA's) $+ $iif(%webw = 0,,$+ $chr(44) %webw Web) $+ $iif(%otw = 0,,$+ $chr(44) %otw Other) $+ $iif(%unw = 0,,$+ $chr(44) %unw Unknown) $+ ) Partially seen $iif(%tvpw = 0,,%tvpw Series) $+ $iif(%sppw = 0,,$+ $chr(44) %sppw Specials) $+ $iif(%mpw = 0,,$+ $chr(44) %mpw Movies) $+ $iif(%ovpw = 0,,$+ $chr(44) %ovpw OVA's) $+ $iif(%wpw = 0,,$+ $chr(44) %wpw Web) $+ $iif(%otpw = 0,,$+ $chr(44) %otpw Other) $+ $iif(%unpw = 0,,$+ $chr(44) %unpw Unknown) $+ . Total %epswatched Episodes( $+ $round($calc(%epswatched / %totaleps * 100 ),3) $+ % of Mylist, $round($calc(%epswatched / %anidbepcount * 100 ),3) $+ % of AniDB), %fileswatched Files, $bytes(%watchedsize,g).suf $+ , Time wasted %days Days %hour Hour and %mins Minutes
  }
}

alias storage {
  if ($exists(%aom.file)) { 
    var %StateUnknownc $readini(%aom.file, statusUnknown, count)
    var %StateUnknowns $readini(%aom.file, statusUnknown, size)
    var %StateUnknownw $readini(%aom.file, statusUnknown, watched)
    var %Statehddc $readini(%aom.file, statusOnHDD, count)
    var %Statehdds $readini(%aom.file, statusOnHDD, size)
    var %Statehddw $readini(%aom.file, statusOnHDD, watched)
    var %Statecdc $readini(%aom.file, statusOnCD, count)
    var %Statecds $readini(%aom.file, statusOnCD, size)
    var %Statecdw $readini(%aom.file, statusOnCD, watched)
    var %Statedelc $readini(%aom.file, statusDeleted, count)
    var %Statedels $readini(%aom.file, statusDeleted, size)
    var %Statedelw $readini(%aom.file, statusDeleted, watched)
    Say State: $iif(%StateUnknownc = 0,,Unknown: %StateUnknownc File's $+ $chr(44) $bytes(%StateUnknowns).suf $+ $chr(44) Episodes Watched %StateUnknownw $+ $chr(44)) $iif(%Statehddc = 0,,On HDD: %Statehddc File's $+ $chr(44) $bytes(%Statehdds).suf $+ $chr(44) Episodes Watched %Statehddw $+ $chr(44)) $iif(%Statecdc = 0,,On CD/DVD: %Statecdc File's $+ $chr(44) $bytes(%Statecds).suf $+ $chr(44) Episodes Watched %Statecdw $+ ) $iif(%Statedelc = 0,, $chr(44) $+ Deleted: %Statedelc File's $+ $chr(44) $bytes(%Statedels).suf $+ $chr(44) Episodes Watched %Statedelw $+ .)
  }
}

alias AnimeTypetv {
  AnimeTypeSay TVSeries animetypeTVSeries
}

alias AnimeTypesp {
  AnimeTypeSay TVSpecials animetypeTVSpecials  
}

alias AnimeTypem {
  AnimeTypeSay Movies animetypeMovies
}

alias AnimeTypeova {
  AnimeTypeSay OVAs animetypeOVAs
}

alias AnimeTypeweb {
  AnimeTypeSay Web animetypeWeb
}

alias AnimeTypeot {
  AnimeTypeSay Other animetypeOther
}

alias AnimeTypeun {
  AnimeTypeSay Unknown animetypeUnknown
}

alias AnimeTypeSay {
  if ($exists(%aom.file)) {
    var %total $readini(%aom.file, $2, total)
    var %m $readini(%aom.file, $2, inmylist)
    var %w1 $readini(%aom.file, $2, allwatched)
    var %pw1 $readini(%aom.file, $2, partwatched)
    var %tw1 $readini(%aom.file, $2, lengthwatched)
    var %days $int($calc( (%tw1 ) / (60*60*24)) )
    var %hour $int($calc( (%tw1 ) / (60*60) - (%days *24) ))
    var %mins $int($calc( (%tw1 ) / (60) - (%days *24*60) - (%hour *60)) )
    say $$1: In AniDB: %total - In Mylist: %m - Watched: %w1 - Partially Watched: %pw1 - Time wasted: %days Days %hour Hour and %mins Minutes

    return 0
  }
}
  • Update/debug

fixed a small calculating error in the stats part.

edit: Adjusted the script for AOM 0.5.10+ and higher. Cleaned the code a little bit also Thx to light

  • v0.2 : fixed script so it will work with older mIRC versions

Here I added a menu to show the AniDB stats, your own stats, and the state of the files. Like X files unknown on HDD on CD and deleted.

  • v0.4 : Fixed some little bugs
      : Added the Time Wasted to some stats.
      : Reorded some things