#54101 Le 13/10/2010, à 23:51
- juju_theseaman
Re : Topic des couche-tard (31)
Quelqu'un a une bonne methode pour apprendre l'espagnol ici ?
Je me suis torture hier a essaye de maitriser le 'r', je n'en parle pas du tout un mot en fait.
En plus du Canada les billets d'avion vers le sud sont pas chers en basse saison, ca donne des idee (Hum un pinacolada sur une plage a Cuba...).
A part "No abla Espanol" et "Ola una cervessa por favor", je connais rien...
Hors ligne
#54102 Le 13/10/2010, à 23:52
- Вiɑise
Re : Topic des couche-tard (31)
Biaise a écrit :@ Pylade : ah bah merci, quel poète !
la poésie de mise
Gné ?
Hors ligne
#54103 Le 13/10/2010, à 23:52
- Slystone
Re : Topic des couche-tard (31)
A part "No abla Espanol" et "Ola una cervessa por favor", je connais rien...
Mais c'est un tres bon debut ca ! Appris et approuve !
«Rigid, the skeleton of habit alone upholds the human frame.» - Virginia Woolf.
Hors ligne
#54104 Le 13/10/2010, à 23:53
- nathéo
Re : Topic des couche-tard (31)
points
C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]
Hors ligne
#54105 Le 13/10/2010, à 23:58
- ꙳♒⏅⚓ ЅаίԼίՈԶ ⚓⏅♒꙳
Re : Topic des couche-tard (31)
J'aimerais surtout apprendre a le parler, je peux me taper toutes les tables de conjugaison, mais franchement quelle perte de temps si tu n'arrives pas a te faire comprendre...
Je n'ai jamais "appris" le castillan, mais je le parle à peu près couramment. C'est la même grammaire que le français, le vocabulaire est quasiment le même, seule la prononciation peut être problématique. J'habite tout près de l'Espagne depuis 10 ans et je l'ai appris sans m'en rendre compte à force d'aller en vacances chez l'habitant.
Vu que toi, contrairement à moi, tu es doué pour les langues, trouve-toi quelques collègues/étudiantes hispanophones et pratique la langue (no metaporn inside, mais fais ce que tu veux).
Dernière modification par sailing (Le 14/10/2010, à 00:00)
Quoi ? Tu travailles sous GNU/LInux ? Ba, ça va te passer... quand il existera quelque chose de mieux... et ce ne sera pas windows, à moins que ce devienne libre et bien programmé.
mon petit blog de débutant
Hors ligne
#54106 Le 14/10/2010, à 00:00
- edge_one
Re : Topic des couche-tard (31)
juju_theseaman a écrit :A part "No abla Espanol" et "Ola una cervessa por favor", je connais rien...
Mais c'est un tres bon debut ca ! Appris et approuve !
l'espagnol ne s'apprend pas avec une méthode, ça c'est pour avoir des bases de castillan après cela varie dix fois plus que l'anglais en fonction des pays (j'ai "vécu" 7 mois à Madrid)
#54107 Le 14/10/2010, à 00:01
- compte supprimé
Re : Topic des couche-tard (31)
Dodo
#54108 Le 14/10/2010, à 00:01
- Elzen
Re : Topic des couche-tard (31)
Tiens, halloween approche, les vieux sujets ressortent de terre.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#54109 Le 14/10/2010, à 00:04
- juju_theseaman
Re : Topic des couche-tard (31)
J'adore Eolas !
Il répond à un commentateur qui sabre le champagne sur la loi anti burqua :
Vous comprendrez que je ne trinque pas avec vous. Il y a quelques mois, je vivais dans un pays où on pouvait brûler le drapeau et se vêtir comme nous pensions que notre religion l'exigeait. Je ne trinque pas sur la tombe des libertés. Ma religion me l'interdit.
C'est sous ce billet .
Edit : Bonne nuit
Dernière modification par juju_theseaman (Le 14/10/2010, à 00:11)
Hors ligne
#54110 Le 14/10/2010, à 00:15
- Slystone
Re : Topic des couche-tard (31)
@ Sailing : oui l'etape d'apres sera d'aller voir les collegues hispaniques (qui sont en l'occurence croate et serbe d'ailleurs). Le truc c'est que je veux avoir des bases avant d'aller les solliciter, histoire de ne pas jouer le boulet (et avoir l'air completement retarde...).
@ edge : hehe, on dirait que ca a l'air encore plus fun que l'anglais !
Les gens arrivent a se comprendre au moins ?
«Rigid, the skeleton of habit alone upholds the human frame.» - Virginia Woolf.
Hors ligne
#54111 Le 14/10/2010, à 00:17
- edge_one
Re : Topic des couche-tard (31)
@ edge : hehe, on dirait que ca a l'air encore plus fun que l'anglais !
Les gens arrivent a se comprendre au moins ?
oui.
j'adore l'espagnol, un mot peu prendre plusieurs sens.
#54112 Le 14/10/2010, à 00:20
- nany
Re : Topic des couche-tard (31)
@tshirtman : bon, vu que les modifs sont un peu éparpillées, je te mets tout le code et je te laisse regarder les diffs.
Ça récupère l'url de la page du dernier post testé au lieu de celle de la page du post du compteur (qui n'est pas forcément la même comme on a pu le constater avec le problème de Slystone) et permet ainsi de reprendre à partir de ce dernier post pour avoir des statistiques correctes pour les graphiques.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# auteur Gabriel Pettier
# license GPL V3 or later
# sert uniquement a compter les points sur ce topic :http://forum.ubuntu-fr.org/viewtopic.php?pid=938704
# et donc probablement inutile a quiquonque vu que mon serveur se charge de le lancer tous les matins
# publié a seul but de vérification par les interressés. ;), peut aussi servir si mon serveur n'est plus là
# pour assurer le service un jour.
# nécessite python 2.4 minimum, python-beautifulsoup et python-mechanize.
# le fichier '.compteur_logins' doit contenir le login du posteur sur la première ligne, et son mot de passe
# sur la deuxième (cela et seulement cela).
from BeautifulSoup import BeautifulSoup
import urllib2
import re
import time
import sys
import ClientForm
import mechanize as ClientCookie
ignoreList = ('ArkSeth','compteur-couche-tard','fergo','pdas','Compteur_couche_tards', 'Le Bûcher', 'tendances-tdct')
class Day:
"""un jour dure de 21h à 5h du matin exclu ([21h:5h[) il contient la derniere entrée (points) de ce jour pour chaque joueur"""
def __init__(self):
self.entries={}
def addEntry(self, entry):
#plus simple de faire un try except que de verifier que l'entrée existe. :/
try:
self.entries[entry.name] = max(self.entries[entry.name],entry.date.points())
except:
self.entries[entry.name] = entry.date.points()
def __str__(self):
for entry in self.entries.items():
print entry,'+',entries[entry]
def utcFrance():
return 1 + time.localtime(time.time())[-1] #1 + 1 si on est a l'heure d'été
class Date:
def __init__(self,tuple=(20,0),utc=utcFrance()):
self.h = (int(tuple[0])-utcFrance()+24+utc)%24
self.m = int(tuple[1])
def points(self):
if self.m in range(60):
if self.h in range(21,24):
return self.h - 20
if self.h in range(3):
return self.h + 4
if self.h in [3,4]:
return 10
return 0
class Entry:
def __init__(self,name='',date=Date(),edit=Date()):
self.name = name
self.date = max(date,edit)
def setName(self, name):
self.name = name
def setDate(self, date):
if date.points()>self.date.points(): self.date = date
class Score:
def __init__(self, tuple):
self.name = tuple[1]
self.num = int(tuple[0])
def __gt__(self, other):
return self.num>other.num
def __str__(self):
return '%i %s' %(self.num, self.name)
def getPage(url, entries, stat, urlscore):
# essaye jusqu'a 15 fois de récupérer la page
for i in range(15):
try:
page = BeautifulSoup(urllib2.urlopen(url))
break
except:
if i==14: raise
time.sleep(60)
print 'page récupéré, travail en cours'
for post in page.findAll("div","blockpost rowodd blockpost1")+page.findAll("div","blockpost roweven")+page.findAll("div","blockpost rowodd"):
str_date = str(post.find("h2").find("span").find("a")).split('>')[1]
if (
(str_date.split(' ')[0] in ['Hier']
and int(str_date.split(' ')[2].split('<')[0].split(':')[0]) in range(5,24))
or (str_date.split(' ')[0] in ["Aujourd\'hui"]
and int(str_date.split(' ')[2].split('<')[0].split(':')[0]) in range(5))
):
urlscore = url
try:
entry = Entry(str(post.find("div","postleft").find("a")).split(">")[1].split("<")[0])
except:
entry = Entry(str(post.find("div","postleft").find("strong")).split(">")[1].split("<")[0])
utc=utcFrance()
#print entry.name
if 'GMT' in str(post):
try:
#print str(post).split("GMT")[-1]
utc = int(str(post).split("GMT")[-1].split(" ")[0].split("<")[0])
print 'GMT found',utc
except:
print "no good GMT!"
entry.setDate(Date(str_date.split(" ")[2].split("<")[0].split(":"),utc))
if str_date.split(" ")[2].split("<")[0].split(":")[0] not in stat:
stat[str_date.split(" ")[2].split("<")[0].split(":")[0]] = 1
else:
stat[str_date.split(" ")[2].split("<")[0].split(":")[0]] += 1
if post.find('p','postedit') is not None:
print "edit found"
try:
entry.setDate(Date(str(post.find("p","postedit").find("em")).split("à")[1][1:6].split(":"),utc))
except:
print 'error ->'+str(str(post.find("p","postedit").find("em")).split("à"))
#on ne veut pas les points des pseudos dans ignoreList
if entry.name not in ignoreList and (entry.date.points() is not 0): entries.addEntry(entry)
# erreur si le topic fait moins d'une page de long,FIXME!
#result = int(url.split('p=')[1]) < int(str(page.findAll('a')[-7]).split('p=')[1].split('"')[0]) #en espérant que le nombre de liens en bas de page ne change pas! :/
if str(page.find('p','pagelink conl')).split('conl">')[1].split('</p')[0].split(str(page.find('p','pagelink conl').find('strong'))) == ['', '']:
result = False
else:
result = int(url.split('p=')[1]) < int(str(page.find('p','pagelink conl').findAll('a')[-2]).split('p=')[1].split('"')[0])
#FIXED!
if not result:
# on vérifie si le sujet est fermé, auquel cas on renvoie le dernier lien fourni sur la page
if "Sujet fermé" in ''.join( (str( i) for i in page.findAll('p','postlink conr'))):
print str(page.findAll('div','postmsg')[-1])
result = str(page.findAll('div','postmsg')[-1].findAll('a')[-1]).split('"')[1]
return result, urlscore
def renderstats(stats):
if stats != {}:
DayStats = {'00': 0, '01': 0, '02': 0, '03': 0, '04': 0, '05': 0, '06': 0, '07': 0, '08': 0, '09': 0, '10': 0, '11': 0, '12': 0, '13': 0, '14': 0, '15': 0, '16': 0, '17': 0, '18': 0, '19': 0, '20': 0, '21': 0, '22': 0, '23': 0}
DayStats.update(stats)
HoursBar = 'h|'.join(sorted(DayStats.keys()))+'h'
HoursBar = HoursBar[20:]+'|'+HoursBar[:19]
HoursBar = HoursBar[0:len(HoursBar)-1]
HoursPie = 'h|'.join(sorted(stats.keys()))+'h'
for k in stats.keys():
HoursPie = HoursPie.replace(k+'h', k+'h%20-%20'+k+'h59')
DataBar = ','.join([str(DayStats[x]) for x in sorted(DayStats.keys())])
DataBar = ','.join(DataBar.split(',')[5:24])+','+','.join(DataBar.split(',')[0:5])
Vmax10 = str(10*(int(max([DayStats[x] for x in DayStats.keys()]))/10+1))
urlimage='[img=Répartition][url=http://chart.apis.google.com/chart?chs=675x280&cht=p3&chco=d80020,d88000,ffd840,20d820,2080ff,101080,a020d8&chf=bg,s,00000000&chl=+HoursPie+&chd=t:+,.join(]http://chart.apis.google.com/chart?chs=675x280&cht=p3&chco=d80020,d88000,ffd840,20d820,2080ff,101080,a020d8&chf=bg,s,00000000&chl='+HoursPie+'&chd=t:'+','.join([/url][str(stats[x]) for x in sorted(stats.keys())])+'&chp=1.6&chtt=R%C3%A9partition%20des%20posts&chts=606060,16[/img]'
urlimage+='[img=Posts/heure][url=http://chart.apis.google.com/chart?chs=675x280&cht=bvs&chxt=x,y&chds=0,+Vmax10+&chxr=1,0,+Vmax10+((Vmax10]http://chart.apis.google.com/chart?chs=675x280&cht=bvs&chxt=x,y&chds=0,'+Vmax10+'&chxr=1,0,'+Vmax10+((Vmax10[/url] == '30' and ',5') or '')+'&chf=b0,lg,0,803000,0,ffc080,1|bg,s,00000000&chxl=0:|'+HoursBar+'h'+'&chxp=0,0.7,4.9,9.1,13.2,17.3,21.5,25.6,29.8,33.9,38,42.2,46.3,50.5,54.6,58.8,62.9,67,71.2,75.3,79.4,83.6,87.7,91.8,96&chd=t:'+DataBar+'&chm=N,803000,0,-1,12&chtt=|Nombre%20de%20posts%20par%20heure&chts=606060,16[/img]'
return urlimage
return None
def post(_file, stats):
# le fichier '.compteur_logins' doit contenir le login du posteur sur la première ligne, et son mot de passe sur la deuxième (cela et seulement cela).
file = open(".compteur_logins","r")
login = file.readline().split('\n')[0]
password = file.readline().split('\n')[0]
file.close()
cookieJar = ClientCookie.CookieJar()
opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cookieJar))
opener.addheaders = [("User-agent","Mozilla/5.0 (compatible)")]
ClientCookie.install_opener(opener)
fp = ClientCookie.urlopen("http://forum.ubuntu-fr.org/login.php")
forms = ClientForm.ParseResponse(fp)
fp.close()
form = forms[1]
form["req_username"] = login
form["req_password"] = password
fp = ClientCookie.urlopen(form.click())
fp.close()
file = open('url','r')
tid = file.readline().split('=')[1][:-2] # la première ligne contenant l'addresse du topic.
file.close()
fp = ClientCookie.urlopen("http://forum.ubuntu-fr.org/post.php?tid="+tid)
forms = ClientForm.ParseResponse(fp)
fp.close()
form = forms[1]
title = (((_file == "count") and "Scores totaux, depuis le début") or "scores de la période en cours")
form["req_message"] = title+" :[code]"+'\xe2\x80\xad'
file = open(_file, 'r')
scores=file.readlines()
urlimage = renderstats(stats)
stats = {}
for i in range(len(scores)):#on veut toutes les lignes restantes
if i == 0:
tmpRange = 0
elif scores[i].split(" ")[0] == scores[i-1].split(" ")[0]:
pass
else:
tmpRange = i
#et on ajoute la ligne avec le bon rang a l'entrée
form["req_message"] += (
(('\xe2\x80\xae' in scores[i-1] and '\xe2\x80\xac') or '')+
(("Quelqu'un" in scores[i] and "*** Vétéran des couche-tard, invaincu avant retraite ***\n") or '')+
str(tmpRange+1)+
") "+scores[i]+
(("Quelqu'un" in scores[i]
and "******************************************************************************\n") or '')
)
form["req_message"] += "[/code]"+(urlimage or '')
fp = ClientCookie.urlopen(form.click())
fp.close()
def main(urlfile, files):
debug = False
stats = {}
f=open(urlfile,"r")
url=urlscore=f.readline().split('\n')[0]
f.close()
entries = Day()
while True:
print "lecture de la page "+url
res = getPage(url, entries, stats, urlscore)
urlscore = res[1]
if not res[0]: break
url=url.split('p=')[0]+'p='+str(1+int(url.split('p=')[1]))
if res[0] is not True:
url = url.split('?')[0]+'?'+res[0].split('?')[1]+'&p=1'
if not debug:
f=open(urlfile,"w")
f.write(url+'\n')
f.close()
for file in files:
f=open(file,'r')
lines=(file=="count10days" and ((time.localtime()[2]==2 and ["0 "+entries.entries.keys()[0]+"\n"]) or f.readlines()) or f.readlines())
f.close()
exp = re.compile("^[0-9]+\s*")
scores = []
print "lecture scores courants"
for line in lines:
if line not in [' ','']:
scores.append(Score([(line.split(' ')[0]),exp.split(line)[1].split('\n')[0]]))
new_scores=[]
for entry,num in entries.entries.items():
for score in scores:
if entry.lower() == score.name.lower():
score.num+=num
break
if score is scores[-1]:
new_scores.append(Score([num,entry]))
break
scores+=new_scores
# vérification des doublons
for nScore in range(len(scores)-1):
for mScore in range(nScore+1,len(scores)-1):
try:
if scores[nScore].name.lower() == scores[mScore].name.lower():
scores[nScore].num+=scores[mScore].num
del(scores[mScore])
except:
pass
scores.sort(reverse=True)
if not debug:
for score in scores: print score
f=open(file, "w")
for score in scores: #print score
f.write('%s\n'%score)
f.close()
for i in range(15):
try:
post(file, stats)
stats = {}
break
except:
if i == 14: raise
time.sleep(60)
time.sleep(10)
main("url",["count","count10days"])
#post("count",{})
#post("count10days",{})
↑ Bon ben, obligé de bidouiller pour que ça passe. Tu vas devoir remplacer « c » par « c ». ↑
Hors ligne
#54113 Le 14/10/2010, à 00:20
- ꙳♒⏅⚓ ЅаίԼίՈԶ ⚓⏅♒꙳
Re : Topic des couche-tard (31)
oui.
j'adore l'espagnol, un mot peu prendre plusieurs sens.
"coger" par exemple ?
Quoi ? Tu travailles sous GNU/LInux ? Ba, ça va te passer... quand il existera quelque chose de mieux... et ce ne sera pas windows, à moins que ce devienne libre et bien programmé.
mon petit blog de débutant
Hors ligne
#54114 Le 14/10/2010, à 00:22
- edge_one
Re : Topic des couche-tard (31)
edge_one a écrit :oui.
j'adore l'espagnol, un mot peu prendre plusieurs sens."coger" par exemple ?
si senor mi preferido es "salida"
#54115 Le 14/10/2010, à 00:31
- ArzhurB
Re : Topic des couche-tard (31)
Plop.
Hors ligne
#54116 Le 14/10/2010, à 00:36
- nesthib
Re : Topic des couche-tard (31)
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#54117 Le 14/10/2010, à 00:38
- Compte anonymisé
Re : Topic des couche-tard (31)
'nuit
#54118 Le 14/10/2010, à 00:44
- ꙳♒⏅⚓ ЅаίԼίՈԶ ⚓⏅♒꙳
Re : Topic des couche-tard (31)
Le truc c'est que je veux avoir des bases avant d'aller les solliciter, histoire de ne pas jouer le boulet (et avoir l'air completement retarde...).
Tu veux des bases de langues faites par des gens sérieux, comme la BBC pour l'english ?
Tu veux que ce soit efficace comme la BBC pour l'english ?
Tu veux que ce soit varié comme la BBC pour l'english ?
Hé bé, va voir le site spanish de la BBC.
Quoi ? Tu travailles sous GNU/LInux ? Ba, ça va te passer... quand il existera quelque chose de mieux... et ce ne sera pas windows, à moins que ce devienne libre et bien programmé.
mon petit blog de débutant
Hors ligne
#54119 Le 14/10/2010, à 00:47
- 银河系
Re : Topic des couche-tard (31)
Autant je n'aime pas spécialement écouter sa musique, autant j'aime jouer ce genre de "vieilleries" à la basse :
Le garçon sait vraiment écrire des grooves plaisant à reproduire.Allez, j'ai marqué mon "un point" alors j'y retourne.
PS : C'est con cette nouvelle balise video qui oblige à passer pas tinyogg pour pouvoir poster une simple video. C'est lent et chiant. Vivement qu'on remette un truc qui fonctionne.
En, plus la perte de son est terrible Sans parler que dans 48h on ne sera pas de quoi tu parles.
Mais bon ça doit faire plaisir à tous ceux qui voulaient voir disparaître la balise youtube, c'est à dire 99,9....% de ceux qui ne cliqueront jamais pour voir ton lien ogv...
Dernière modification par milkyway (Le 14/10/2010, à 00:52)
Hors ligne
#54120 Le 14/10/2010, à 00:50
- rmy
Re : Topic des couche-tard (31)
bonne nuit…
récupération de données: vrac–topic unique–mon site pro pour les particuliers : www.diskcard.fr– Je recycle volontiers tous vos disques durs HS (ou pas).
Le site pro pour les pros, spécialiste recupération de données RAID, NAS et serveurs: www.vodata.fr
Hors ligne
#54121 Le 14/10/2010, à 00:53
- CasseTaTele
Re : Topic des couche-tard (31)
PS : C'est con cette nouvelle balise video qui oblige à passer pas tinyogg pour pouvoir poster une simple video. C'est lent et chiant. Vivement qu'on remette un truc qui fonctionne.
En, plus la perte de son est terrible
Sans parler que dans 48h on ne sera pas de quoi tu parles.
Mais bon ça doit fair plaisir à tous ceux qui voulaient voir disparaître la balise youtube, c'est à dire 99,9....% de ceux qui ne cliqueront jamais pour voir ton lien ogv...
Chez moi ça reste bloqué ça marche pas
Hors ligne
#54122 Le 14/10/2010, à 00:59
- 银河系
Re : Topic des couche-tard (31)
Chez moi ça reste bloqué ça marche pas
Reste le lien direct :
Hors ligne
#54123 Le 14/10/2010, à 01:01
- El Pensador
Re : Topic des couche-tard (31)
Bonne nuit à tous
« À quoi je sers ? Sans doute à rien du tout... »
A Tunisian Girl
Hors ligne
#54124 Le 14/10/2010, à 01:02
- Zeibux
Re : Topic des couche-tard (31)
okio
Croix de bois croix de fer, si je mens, j'me tape une bière
La Valeur sur, c'est sur qu'il avale!
je veux bien qu'on pisse dans un violon, mais.. En rythme non d'un chien!
[Mémoire virtuelle limitée] encrypté, et dans un format obscur, propriétaire et non documenté...
Hors ligne
#54125 Le 14/10/2010, à 01:03
- ꙳♒⏅⚓ ЅаίԼίՈԶ ⚓⏅♒꙳
Re : Topic des couche-tard (31)
En fait, je n'arrive même pas à lire ma propre video sous firefox, obligé de l'enregistrer ou de la lire via un lecteur externe. Et c'est d'une lenteur ! C'est vraiment nul cette mode.
Quoi ? Tu travailles sous GNU/LInux ? Ba, ça va te passer... quand il existera quelque chose de mieux... et ce ne sera pas windows, à moins que ce devienne libre et bien programmé.
mon petit blog de débutant
Hors ligne