Statystyki

30.01.2010

Wykres aktywności

Wykres aktywności na IRCu, obejmujący wszystkie utworzone logi, z zaznaczonymi co ciekawszymi datami, w zgormadzeniu których pomagał mi adasiek-k. Wykres aktywności na IRCu od początku logowania rozmów

Inne konkursiki

Odnośniki wysłane do tej pory na IRCa

Tego postanowiłem u siebie nie hostować, bo ogromna ilość odnośników prowadzi, jakby nie patrzeć, do pornuchów. Nawet pastebiny były podejrzliwe.

W każdym bądź razie, oto ta lista.

Sposób wykonania

Jakby to kiedyś powtórzyć, to nie będzie trzeba kombinować, jak to było. Pewnie wszystko źle, jeśli znajdziesz błąd, daj znać — w końcu dopiero się uczę.

Skrypt Pythona zbierający ilości linii w plikach tekstowych

stats.py
# -*- coding: utf-8 -*-
import os
from os.path import join, getsize
 
for root, dirs, files in os.walk('.'):
    for curfile in files:
      print root.strip('./') + '/' + curfile.strip('.log') + '\t',
      print len(open(root + '/' + curfile).readlines())

Skrypt gnuplota do rysowania wykresu

Trzeba było trochę posegregować te dane, więc z lenistwa zrobiłem to w OpenOffice.

wykres.gnu
set encoding iso_8859_2
set terminal png size 2048,1536
set grid
set output 'wykres.png'
set xlabel "dzień"
set ylabel "ilość linii w logu"
set xdata time
set timefmt "%d.%m.%Y"
set format x "%Y-%m-%d"
set boxwidth 1
# poniżej zaczynamy testy
set style rect fc lt 10 fs solid 0.15 noborder
 
set label "etest - fizyka\nkoło - AiR\nkoło - dyskretna\nkoło - różniczki" at "9.06.2009",5800 center
set obj rect from "03.06.2009", graph 0 to "16.06.2009", graph 1
 
set label "egzamin - fizyka\negzamin - programowanie obiektowe" at "20.06.2009",5000 left
set obj rect from "19.06.2009", graph 0 to "20.06.2009", graph 1
 
set label "egzamin - fizyka (II term.)" at "22.06.2009",4500 left
set obj rect from "22.06.2009", graph 0 to "24.06.2009", graph 1
 
set label "egzamin - fizyka (III term.)" at "28.06.2009",4000 left
set obj rect from "28.06.2009", graph 0 to "30.06.2009", graph 1
 
set label "koło - AK" at "16.12.2009",4000 center
set obj rect from "15.12.2009", graph 0 to "17.12.2009", graph 1
# ---- koniec testów
plot "./stats.csv" using 1:2 lt -1 lw 2 notitle with boxes

Skrypt do zliczania aktywności nicków po ilości linii

stats2.py
# -*- coding: utf-8 -*-
import os
import re
import operator
from os.path import join, getsize
 
nicks = {}
 
for root, dirs, files in os.walk('.'):
  for curfile in files:
    for line in open(root + '/' + curfile).readlines():
      m = re.search('.< ([a-zA-Z0-9_-]+)>.', line)
      if m:
	nick = m.group(1)
	if not nick in nicks:
	  nicks[nick] = 1
	else:
	  nicks[nick] += 1
 
nicksn = nicks.items()
nicksn = sorted(nicksn, key=operator.itemgetter(1))
nicksn.reverse()
n = 1
print '^ nr ^ wynik ^ nick ^'
for element in nicksn:
  print '| ', n , ' |', element[1], ' |%%', element[0], '%% |'
  n += 1

Skrypt do zliczania aktywności nicków po łącznej ilości znaków w wiadomościach

stats3.py
# -*- coding: utf-8 -*-
import os
import re
import operator
from os.path import join, getsize
 
nicks = {}
 
for root, dirs, files in os.walk('.'):
  for curfile in files:
    for line in open(root + '/' + curfile).readlines():
      m = re.search('http:////', line)
      if m:
        nick = m.group(1)
        msg = m.group(2)
        if not nick in nicks:
          nicks[nick] = len(msg)
        else:   
          nicks[nick] += len(msg)
 
nicksn = nicks.items()
nicksn = sorted(nicksn, key=operator.itemgetter(1))
nicksn.reverse()
n = 1
print '^ nr ^ wynik ^ nick ^'
for element in nicksn:
  print '| ', n , ' |', element[1], ' |%%', element[0], '%% |'
  n += 1

Skrypt do zliczania aktywności nicków po ilości wysłanych URLi

stats4.py
# -*- coding: utf-8 -*-
import os
import re
import operator
from os.path import join, getsize
 
nicks = {}
urlcount = 0
 
for root, dirs, files in os.walk('.'):
  for curfile in files:
    for line in open(root + '/' + curfile).readlines():
      m = re.search('(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?', line)
      if m:
        url = m.group(0)
        m = re.search('.< ([a-zA-Z0-9_-]+)>.', line)
        urlcount += 1
        if m:
            nick = m.group(1)
            if not nick in nicks:
              nicks[nick] = 1
            else:   
              nicks[nick] += 1  
 
nicksn = nicks.items()
nicksn = sorted(nicksn, key=operator.itemgetter(1))
nicksn.reverse()
n = 1
print "W sumie wysłanych linków: ", urlcount
print '^ nr ^ wynik ^ nick ^'
for element in nicksn:
  print '| ', n , ' |', element[1], ' |%%', element[0], '%% |'
  n += 1

Skrypt do zbierania URLi

stats5.py
# -*- coding: utf-8 -*-
import os
import re
import operator
from os.path import join, getsize
 
nicks = {}
 
for root, dirs, files in os.walk('.'):
  for curfile in files:
    for line in open(root + '/' + curfile).readlines():
      m = re.search('(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?', line)
      if m:
        url = m.group(0)
        if not url in nicks:
          nicks[url] = 1
        else:   
          nicks[url] += 1  
 
nicksn = nicks.items()
nicksn = sorted(nicksn, key=operator.itemgetter(1))
nicksn.reverse()
n = 1
print '^ nr ^ wynik ^ nick ^'
for element in nicksn:
  print '| ', n , ' |', element[1], ' |%%', element[0], '%% |'
  n += 1
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki