Nan mais j'avais dit que je me proposais pas. Il faudrait un autre staffeux ou Eskimon pour battre mon résultat. En temps que staffeux, j'interviens de fait plus que la majorité des membres et on aussi un forum propre, donc plus de sujets où l'on intervient.
Ah, le bug de tableau. Mais les devs de ZdS sont tellement rapides qu'ils l'ont déjà résolu.
Si vous avez des idées d'autres stats à collecter…
J'avais pensé à faire un truc avec les +1/-1 mais ça demandes beaucoup trop de requêtes (nombre de messages / 21, pour les pages de messages, + 1 par message, parce qu'il faut charger la page de forum qui contient le message pour avoir les +1/-1) par personne.
Je dois bien trouver un moyen de remonter le classement. Ça explique pourquoi ce message ne contient absolument rien d'utile, à par mon approbation au message de Arius.
Au fait, j'ai même pas partagé le code du script qui génère le tableau (c'est assez moche, surtout niveau logique ; pourquoi un fichier known.yml et un users.yml ? à chaque fois que je fais la liste, je laisse tout le monde qui est dans le known, mais flemme de modifier, if it ain't broke, don't fix it) :
fromdatetimeimportdatetimeimportsysfrombs4importBeautifulSoupimportrequestsfromtabulateimporttabulateimportyamldefget_user_info(username):url='https://zestedesavoir.com/membres/voir/{}/'.format(username)res=requests.get(url)ifres.status_code==404:raiseSystemExit('Unknown user')ifres.status_code!=200:raiseSystemExit('Is ZdS down? Or have you touched something? Or is this '+'script outdated? You will never know...')soup=BeautifulSoup(res.text,'html.parser')msg_count=int(soup('span',class_='count')[-1].get_text())joined_str=soup.find('ul',class_='member-infos').find('li').get_text().strip()joined_datetime=datetime.strptime(joined_str,'Inscrit %d/%m/%y à %Hh%M')days=(datetime.now()-joined_datetime).daysreturn{'msg':msg_count,'days':days}withopen('users.yml','r',encoding='UTF-8')asf:usernames=yaml.load(f)withopen('known.yml','r',encoding='UTF-8')asf:known=yaml.load(f)ifknownisNone:known={}data=[]forusernameinusernames:ifusernamenotinknown:known[username]=get_user_info(username)foriinknown:ifiinusernames:msg=known[i]['msg']days=known[i]['days']data.append([i,msg,days,'{0:.3f}'.format(msg/days)])data=sorted(data,key=lambdauser:user[3],reverse=True)print(tabulate(data,['Username','Messages','Days','Messages/day'],tablefmt='grid'))withopen('known.yml','w',encoding='UTF-8')asf:yaml.dump(known,f)
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte