分页: 1 / 1

irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-23 23:01
aBiNg
声明:本脚本纯属娱乐。

本想获取 freenode 的 log,作 #ubuntu-cn 房间在一天中何时最活跃的统计,研究下人的大脑生理规律的;但 log 中没时间记录,只有年月日,只可作 Nicks 的活跃度排行,转搞娱乐业了。XD

以下是 #ubuntu-cn 房间自开门以来有 log 记录的跨年度最活跃 Nicks 排行 Top 20,MJ 自己看着办。:D

代码: 全选

$ IRC_the_Most_Active 20 2006,2008 3,10

代码: 全选

Logs from 2006.3 to 2008.10
+ Get 2006.03 logs from ubuntu-eu.org
  ...
+ Get 2006.12 logs from ubuntu-eu.org
+ Get 2007.01 logs from ubuntu-eu.org
  ...
+ Get 2007.10 logs from ubuntu-eu.org
+ Get 2007.11 logs from ubuntu-eu.org
+ Get 2007.12 logs from ubuntu-eu.org
+ Get 2008.01 logs from ubuntu-eu.org
  ...
+ Get 2008.10 logs from ubuntu-eu.org
  + Get 2008.10.23 ... done!

Top 20 Active Nicks:

    Counts Nick
 --------- ----------  2006.3 -> 2008.10
     33124 zhan
     32967 fermi
     31962 DawnFantasy
     27820 AutumnCat
     27382 Huahua
     27309 eexpress
     25888 iFvwm
     24969 karron
     23474 fideas
     21299 Shely
     16842 AnThOnYhO
     16281 Fong
     16041 freeflying
     15427 huahua
     14069 matri
     13669 c\nc
     13653 palomino|working
     11994 eXopeth
     11358 iGoogle
     10894 zmcbb30

嗯,第一次运行没这么短的输出,这是所有日期的 log 都 down 下来后的运行输出。如果参数给正确的话,首次运行实际情况大致是:

代码: 全选

Logs from 2006.3 to 2008.10
+ Get 2006.03 logs from ubuntu-eu.org
  + Get 2006.03.11 ... done!
  + Get 2006.03.12 ... done!
  ...
+ Get 2006.06 logs from ubuntu-eu.org
  ...
  + Get 2006.06.06 ... done!
  + Get 2006.06.07 ... done!
  ...
+ Get 2007.11 logs from ubuntu-eu.org
  + Get 2007.11.01 ... done!
  + Get 2007.11.02 ... done!
  ...
  + Get 2007.11.12 ... done!
  ...
+ Get 2008.01 logs from ubuntu-eu.org
  ...
+ Get 2008.10 logs from ubuntu-eu.org
  + Get 2008.10.23 ... done!
最终排行结果依给的参数不同而不同。

脚本内容:放到附件了,直接去后缀运行即可。

用法:脚本中有一函数 Usage,写得很清楚,常写脚本的同志都明白。
需要说明几点:
  • Counts 列为发言次数。
  • top 指前几名,拟限 100;y/m 为 year/month。
  • 2006.03.11 为 #ubuntu-cn 有 log 记录的第一天,所以不要超前查。
  • 当天的 log 每次运行强制更新。log 下载目录为 /tmp/irc_most,见脚本。
  • 查单月,多月(连续),单年(把月写满),多年(连续),应该没有问题。
举例:
1、查 2007 全年前 10:

代码: 全选

$ IRC_the_Most_Active 10 2007 1,12

代码: 全选

Top 10 Active Nicks:

    Counts Nick
 --------- ----------  2007.1 -> 2007.12
     28601 DawnFantasy
     21316 zhan
     19604 AutumnCat
     17859 fideas
     16561 eexpress
     15813 iFvwm
     13792 Shely
     10868 karron
      8618 matri
      8583 huahua

2、查 2006.04 到 2008.04 前 5:

代码: 全选

$ IRC_the_Most_Active 5 2006,2008 4,4

代码: 全选

Top 5 Active Nicks:

    Counts Nick
 --------- ----------  2006.4 -> 2008.4
     31513 DawnFantasy
     31314 zhan
     29663 fermi
     26735 eexpress
     25994 Huahua
3、错误的参数就不举例了,自行实践。:D

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 9:41
yaoms
:em06

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 9:56
aBiNg
要是排 08 年,yaoms 怕是榜上有名的,呵呵。

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 10:31
aBiNg

代码: 全选

$ IRC_the_Most_Active 10 2008 1,10

代码: 全选

Top 10 Active Nicks:

    Counts Nick
 --------- ----------  2008.1 -> 2008.10
     10325 iGoogle
     10075 iFvwm
      9129 ikk-
      8568 yaoms
      8216 AutumnCat
      7967 eXopeth
      7507 Shely
      7196 moo
      6945 iNutshell
      6765 AnThOnYhO


Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 10:32
yaoms
还是比不上老前辈的 :em02

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 18:00
c\nc
上榜了 :em09

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 18:10
zhan
阿炳真闲。。。。

其实不公平,算上马甲的话,一下子就看出来阿姨是万年的榜首!

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 19:12
karron
靠, 居然我的排名这么高! 今年没怎么上IRC了.

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-24 19:50
aBiNg
zhan, 起初想研究人的大脑活跃度的,大概具有普适性。
karron, 你老要么不上,一上就讲一堆啊,可能是这样。
:D

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-25 12:38
aBiNg
出现个 bug。

比如:
昨天下午更新的 log,今天(执行脚本时,下同)就不再更新(重新下载)了,所以昨天下午到今天这段时间的数据就丢失了。
依此,还有上个月与当月的关系,还可以推到前段时间的某天与今天,或者之前一个月与当月。

想到了一个添加更新日期到一指定文件(update.lock)存放的办法,首帖已更新脚本。


另,想下次重启系统后 log 数据文件不被系统自动删除的话,改下 TEMP_DIR 变量,别放 /tmp 下即可。

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-26 12:43
aBiNg
之前用 printf 将单个数字(如:8)转换成前导补0的双数(如:08),但将之应用到 bash 中的话,会被当作八进制数处理,于是 08 就是不合法的数了.
例如:

代码: 全选

$ a=(0 1 2 3 4 5 6 7 8 9)
$ echo ${a[08]}
bash: 08: value too great for base (error token is "08")
我的脚本文件中是用 b=08; ${a[${b#0}]} 这样切掉的,其实还可以强制转换为十进制数,这样:

代码: 全选

$ echo ${a[10#$b]}
8
一并写上,希望对别人有点用吧.

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-26 23:16
异域追梦者
真有意思 呵呵 同意zhan对于阿姨的言论

Re: irc 年度最活跃 Nicks 排行榜

发表于 : 2008-10-26 23:23
bones7456
低调...低调.... :em04