UPDATE lsv_lsvtrans
SET sources = x.arr[2], details = x.arr[1]
FROM (
SELECT id, string_to_array(details, '+Source :+') AS arr
FROM lsv_lsvtrans
WHERE array_upper(string_to_array(details, '+Source :+'), 1)=2
) x
WHERE x.id=lsv_lsvtrans.id
Sources des LSV avec un S ou non ?
from spontex.lsv import models
import re
a = 0
for l in models.LsvTrans.objects.all():
ok = 0
try:
details = details.split('+Sources:+\r\n')[0]
sources = l.details.split('+Sources:+\r\n')[1]
ok = 1
except:
try:
details = l.details.split('+Source:+\r\n')[0]
sources = l.details.split('+Source:+\r\n')[1]
ok = 1
except:
try:
details = l.details.split('+Source :+\r\n')[0]
sources = l.details.split('+Source :+\r\n')[1]
ok = 1
except:
try:
details = l.details.split('+Sources :+\r\n')[0]
sources = l.details.split('+Sources :+\r\n')[1]
ok = 1
except:
try:
details = l.details.split('+Sources :+ \r\n')[0]
sources = l.details.split('+Sources :+ \r\n')[1]
ok = 1
except:
try:
details = l.details.split('+Source :+ \r\n')[0]
sources = l.details.split('+Source :+ \r\n')[1]
ok = 1
except:
try:
details = l.details.split('+Source :+\n')[0]
sources = l.details.split('+Source :+\n')[1]
ok = 1
except:
try:
details = l.details.split('+Sources :+\n')[0]
sources = l.details.split('+Sources :+\n')[1]
ok = 1
except:
try:
details = l.details.split('+Source :+ \n')[0]
sources = l.details.split('+Source :+ \n')[1]
ok = 1
except:
try:
details = l.details.split('+Sources :+ \n')[0]
sources = l.details.split('+Sources :+ \n')[1]
ok = 1
except:
## Pas de sources
a = a + 1
if ok == 1:
l.details = details
l.sources = sources
l.save()
J'ai exécuté ça. ta requête me fait trop peur ^^
UPDATE lsv_lsvtrans
SET sources = x.arr[2], details = x.arr[1]
FROM (
SELECT id, regexp_split_to_array(details, E'(\\+Source)(.*)(:)(.*)(\\+)') AS arr
FROM lsv_lsvtrans
WHERE array_upper(regexp_split_to_array(details, E'(\\+Source)(.*)(:)(.*)(\\+)'), 1)=2
) x
WHERE x.id=lsv_lsvtrans.id;
La requête a été exécutée avec succés : 946 lignes modifiées. La requête a été exécutée en 172 ms.
(Sachant que j'ai modifié les LSV 1060 FR et 67 EN pour que le source se termine par + en local et sur le vrai site)
Ca sent le geek ici, c'est beau, ca me donne envie de me refoutre à tout ca.
Le bug #1 a été corrigé : c'est pratiquement parfait.
Un outil pour corriger les URL a été fournis à côté, dans la partie modo, pour les plus résistantes.
Ouais, ben ça bétonne rien du tout !
Je viens de tester celle-ci que j'ai tinyurlisée ce matin dans le lsv “Voie alccolisée” : http://www.radio-canada.ca/nouvelles/Science-Sante/2006/04/05/004-voielactee-nuagealcool.shtml?ref=rss et il me dit :
Un % a été détectée : serait-elle déjà bétonnée ?
Et là je ne peux faire que OK et rien ne se passe.
Pourquoi il marche pas le nouveau jouet ? :'(
Mans le bug apparaît aussi quand il y a 2 tirets, genre 2005—10–2, le textile fait un seul trait, ce qui foire. Ajoute ça aussi au bétonnage =) ie remplacer les – par %2D.
Et si on tente un bétonnage avec une URL déjà bétonnée (ou conmtenant un %) ca essaye quand même un formatage et du coup ca plante, exemple:
fr.wikipedia.org/wiki/Est%C3%A9rification
devient
fr.wikipedia.org/wiki/Est%25C3%25A9rification
Beri : D'où le message :-)
Ahmet : regarde le code, ce sera plutôt le supprimer du bétonnage ^^
(j'essaye d'y penser ce soir)
Ce que je voulais dire par là c'était peut être de faire apparaitre le résultat dans une autre textbox pour garder l'original, de faire un lien avec le lien original et un lien avec le bétonné en exemple juste en dessous (dynamique).
Comme ca le posteur peut tester le lien directement et choisir entre bétonné ou non bétonné.
Mans dans ce cas pourquoi tu ne fais pas un decodeURIComponent()
de l'url puis tu l'encodes à nouveau ?