Vous n'êtes pas identifié(e).
Voila la source
#! /usr/bin/env python
# -*- coding:Utf-8 -*-
"""
Author : WarLocG(c) 2015
"""
from HTMLParser import HTMLParser
import re
import urllib3
def get_TopicName(url,encode):
http = urllib3.PoolManager()
resource = http.request('GET',url).data.decode(encode)
resource = HTMLParser().unescape(resource).encode('utf-8')
title = resource.split('<title>')[1].split('</title>')[0]
if len(title) > 30:
title = title[:30]+'...'
return title
urls = {0:{'name':'Linuxtrack',
'url':'https://linuxtrack.net/forum.php',
'domain':'https://linuxtrack.net',
'encode':'utf-8',
'rule':r'.*href=\"([a-z0-9=?\.]*).*\"*.(Aujourd\'hui|Hier) ([0-9]{2}:[0-9]{2}:[0-9]{2}).*par ([^\&\?\<\>\\\/]*)\<\/span.*',
'gr_order':[2,3,4,1]},
1:{'name':'Kali Linux fr',
'url':'http://www.kali-linux.fr/forum/index.php',
'domain':'http://www.kali-linux.fr',
'encode':'latin-1',
'rule':r'.*\>([^\&\?\<\>\\\/]*)\<\/a\>\<br.*\n.*href=\"https?:\/\/www\.kali\-linux\.fr\/([a-z0-9=?\.\/]*).*\".*\n.*(Aujourd\'hui|Hier).*([0-9]{2}:[0-9]{2}:[0-9]{2}).*',
'gr_order':[3,4,1,2]}
}
message=""
for i in range(len(urls)):
encode=urls[i]['encode']
http=urllib3.PoolManager()
resources = http.request('GET',urls[i]['url']).data.decode(encode)
resources = resources.split('td')
# a adapter selon vos conky, mettre '' pour aucun
conky_style1 = '${font Santana:pixelsize=13}' #style du format du domaine
conky_style2 = '${font Terminus:pixelsize=11}' #style 'par défaut'
#note:
# pour que le style conky soit effectif, le script devra etre lancé
# via execp depuis .conkyrc
message+="%s%s%s\n" % (conky_style1, urls[i]['name'], conky_style2)
for lines in resources:
lines = HTMLParser().unescape(lines).encode('utf-8')
f = re.search(urls[i]['rule'],lines)
if f is not None:
all=f.group(0)
if len(f.groups()) > 3:
date=f.group(urls[i]['gr_order'][0])
hour=f.group(urls[i]['gr_order'][1])
author=f.group(urls[i]['gr_order'][2])
link=f.group(urls[i]['gr_order'][3])
link = get_TopicName(urls[i]['domain']+"/"+link, encode)
message += ("[%s a %s] %s : %s\n" % (date,hour,author,link))
else:
message += ("%s\n" % str(f.groups()))
print (message)
Mise à jour: 19-06-2015: - Correction des problèmes d'encodage, désormais il est possible d'obtenir le message malgrés les caractères spéciaux. De plus j'ai rajouté une entrée dans le dico urls pour gérer l'encodage qui était différent sur cybertrack et kali-linux.fr.
Mise à jour: 23-06-2015: - Optimisation de la vitesse d'execution du script + correction de 2-3 problèmes d'encodages.
Mise à jour: 14-03-2017: - Utilisation de urllib2 et d'un user-agent Mozilla/5.0 pour traverser le cloudflare de kali-linux.fr.
Mise à jour: 28-07-2019: - urllib2 est devenu tout cassé, suis passé en urllib3 et ca n'a même plus besoin du User-Agent pour bypass le cloudflare.
Petite remarque: depuis que le script scanne deux fora (celui-ci et celui de kali-linux.fr.. qui est assez sale en passant) le script prend un peu de temps, je recommande, comme je l'ai fait chez moi de créer un cron dans le genre de "*/10 * * * * votreUser python script.py > last-message" et depuis votre conky faire un ${execp cat last-message} comme ca si un interval est présent dans le conky, il ne fera que lire le résultat dans last-message et n'enverra pas de trafic excessif car le script est assez gourmand à ce niveau la depuis qu'il va deux fois lire chaque fora, je compte optimiser cela dans un futur proche comme ca m'ennuie également le code est déjà optimisé a ce niveau la, un premier passage récolte les urls, un deuxième permet de récupérer les <title>.
Visuellement (chez moi quoi), ca donne ca:
Mise à jour 19-06-2015:
Hors ligne
Merci pour ce petit script très sympa et utile surtout
Mess With The Bests
Die Like The Rest
Hors ligne
Merci du partage
>> Good things come to those who, Wait.. <<
>> sip:yzeew@ekiga.net << and >> #Pouni3 <<
Hors ligne
Le script ne passe plus pour kali-linux.fr depuis que ca passe à présent par CloudFlare, je regarde pour arranger ca (probablement une affaire de cookie)
Edit: Réparé avec urllib2 et Request, en lui mettant un user-agent, cloudflare laisse passer Reste le souci avec des title sur kali-linux.fr qui doit est être réglé de leur coté mais ca refonctionne.
Hors ligne
coucou
et la fonction rss de conky ne fonctionne plus depuis lua ?
j'utilisais $rss pour choper les messages actifs des forums avant.
genre
${rss http://crunchbanglinux-fr.org/forum/extern.php?action=feed&type=rss 10 item_titles 5}
Dernière modification par arpinux (14-03-2017 14:52:45)
Hors ligne
Je ne serais pas te dire pour rss, j'utilise python afin de sortir les informations d'une manière déjà formatée à ma sauce Et le script est lui même basé sur le style de mon conky. Je testerai pour voir si ca me sort quelque chose qui me convient mais ma priorité est d'arranger ce script qui pour le moment est cassé
Edit: réparé.
Edit2: semble pas fonctionner le ${rss}, ca m'affiche ${rss} donc je présume qu'il faille installer un paquet pour ca fonctionne. Tanpis.
Edit3: ${image} et ${rss} sont reconnu avec conky-all installés. rss fonctionne, juste ca ne fait pas ce que je veux. Je vais l'étudier pour voir si je pourrais l'optimiser un peu Sinon, si il y avais le pubDate et la personne qui a posté compris dans le rss ca aurait été parfait.
Hors ligne
Mise à jour du script. Il tourne dorénavant avec urllib3
Hors ligne