Closed rastapopougros closed 6 years ago
Si tu peux écrire la requête sphinx correspondante et récupérer les identifiants des messages, les étoiler est facile après (avec l'API).
Ton id_auteur est 69, et l'auteur est toujours le premier cité dans properties.share.
Donc :
select properties.id_objet,
IN(properties.share, 69) AS f1,
IN(properties.tags, '#web') AS f2
from seenthis
where f1=1 and f2=1;
+---------------------+------+------+
| properties.id_objet | f1 | f2 |
+---------------------+------+------+
| 14340 | 1 | 1 |
| 14389 | 1 | 1 |
…
(Pour les tags #ergoXXX
avec les sous-variantes il faut que tu ailles piocher la liste dans la page seenthis/tag/ergo, car sphinx ne permet pas de LIKE
dans les properties.tags
).
Une fois la requête bien calée tu peux lui envoyer LIMIT 0, 1000
(c'est le maximum, après il faut paginer).
Ça fait un paquet de ligne… c'est chiant de pas pouvoir donner un tableau pour dire "au moins un tag dans cette liste doit être trouvé dans le tableau json properties.tags".
Par contre je n'ai pas de compte sur le serveur (ou ma clé SSH dessus quoi) il me semble, donc je peux pas tester, ni "récupérer les identifiants".
Pour être sûr aussi : properties.tags contient bien les tags aussi ajoutés dans les commentaires par d'autres personnes ensuite ?
Ah et aussi : est-ce que dans le sphinx, tout ce qui est properties.tags a été mis en minuscule avant ? Et donc il faut bien que je fasse tous mes IN en minuscule ? Ou bien il faut aussi s'amuser à faire toutes les versions ?
select properties.id_objet,
IN(properties.share, 69) AS f1,
IN(properties.tags, '#web') AS f2
IN(properties.tags, '#html') AS f3
IN(properties.tags, '#css') AS f4
IN(properties.tags, '#ergonomie') AS f5
IN(properties.tags, '#accessibilité') AS f6
IN(properties.tags, '#intégration') AS f7
IN(properties.tags, '#webperf') AS f8
IN(properties.tags, '#ergo') AS f9
IN(properties.tags, '#ux') AS f10
IN(properties.tags, '#interface') AS f11
IN(properties.tags, '#ui') AS f12
IN(properties.tags, '#graphisme') AS f13
IN(properties.tags, '#design') AS f14
IN(properties.tags, '#typo') AS f15
IN(properties.tags, '#typographie') AS f16
IN(properties.tags, '#font') AS f17
IN(properties.tags, '#fonte') AS f18
IN(properties.tags, '#fontes') AS f19
IN(properties.tags, '#fonts') AS f20
IN(properties.tags, '#javascript') AS f21
IN(properties.tags, '#js') AS f22
from seenthis
where f1=1 and (f2=1 or f3=1 or f4=1 or f5=1 or f6=1 or f7=1 or f8=1 or f9=1 or f10=1 or f11=1 or f12=1 or f13=1 or f14=1 or f15=1 or f16=1 or f17=1 or f18=1 or f19=1 or f20=1 or f21=1 or f22=1);
Ah je sais plus comment précisément, mais je crois bien que j'avais testé. Il me semble que c'est dans la configuration de sphinx que sont unifiées les majuscules/minuscules et les lettres accentuées.
Bon comme dit précédemment, il reste cette question :
Par contre je n'ai pas de compte sur le serveur (ou ma clé SSH dessus quoi) il me semble, donc je peux pas tester, ni "récupérer les identifiants".
Du coup je vois avec qui, je fais comment pour récupérer cette liste d'identifiants de seens ?
Il faudrait que tu aies l'accès non ?
Bé soit oui, soit que quelqu'un fasse cette requête à ma place :)
Un squelette du coup ?
Là si je passe la requête (convenablement modifiée) :
select properties.id_objet,
IN(properties.share, 69) AS f1,
IN(properties.tags, '#web') +
IN(properties.tags, '#html') +
IN(properties.tags, '#css') +
IN(properties.tags, '#ergonomie') +
IN(properties.tags, '#accessibilité') +
IN(properties.tags, '#intégration') +
IN(properties.tags, '#webperf') +
IN(properties.tags, '#ergo') +
IN(properties.tags, '#ux') +
IN(properties.tags, '#interface') +
IN(properties.tags, '#ui') +
IN(properties.tags, '#graphisme') +
IN(properties.tags, '#design') +
IN(properties.tags, '#typo') +
IN(properties.tags, '#typographie') +
IN(properties.tags, '#font') +
IN(properties.tags, '#fonte') +
IN(properties.tags, '#fontes') +
IN(properties.tags, '#fonts') +
IN(properties.tags, '#javascript') +
IN(properties.tags, '#js') AS f2 from seenthis where f1=1 and f2 > 0 and properties.published=1
LIMIT 0,1000;
J'obtiens 413 identifiants.
Super, merci !
Maintenant deux dernières choses je crois : 1) Comment on fait avec l'API pour juste étoiler des identifiants existants connus ? On ne voit pas ça dans la doc de l'API, alors comment faire ça en masse ?
2) Est-ce que tu peux changer l'identifiant du compte "les_developpements" en "ldd" ?
pas besoin de l'api, tu peux envoyer curl sur le "clic", c'est une action très simple et idempotente donc pas de problème si tu la rejoues plusieurs fois (c'est pas les mêmes paramètres qui ajoutent et qui suppriment l'étoile)
done
Super.
Pour le 1 je comprends le principe, on fait une boucle qui lance curl sur une URL d'action. Mais euh, clic sur quoi du coup ? Parce que dans Seenthis, quand je passe ma souris sur le bouton d'étoile, et bien… ce n'est ni un formulaire, ni un lien, mais juste une ancre vide avec # (c'est mal, uniquement en JS !). Du coup c'est quoi l'URL de l'action, avec l'id en param ?
Je suis sûr que si tu regardes dans la console onglet "Réseau" tu vas trouver :) Sinon: https://github.com/seenthis/seenthis_squelettes/blob/master/javascript/seenthis/seenthis.js#L63
Dites les gens... Je me rends compte que je l'exprime vraiment trop peu...
MERCIIIIIII !
Suske
Le 16 novembre 2017 20:32:03 GMT+01:00, "Philippe Rivière" notifications@github.com a écrit :
Je suis sûr que si tu regardes dans la console onglet "Réseau" tu vas trouver :) Sinon: https://github.com/seenthis/seenthis_squelettes/blob/master/javascript/seenthis/seenthis.js#L63
-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/seenthis/seenthis_squelettes/issues/185#issuecomment-345037191
-- Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
Alors à priori l'adresse serait curl -u login:pass --silent "https://seenthis.net/index.php?action=favori&id_me=XXX&share=1&x=1510924837" > /dev/null
MAIS quelque soit la requête que je fais avec Curl sur seenthis avec l'auth basic (-u), ça renvoie une erreur serveur 503.
Si je fais une requête sans identification là ça charge la page.
Bon bah il fallait changer de user-agent en mode authentifié ! Bizarre car en anonyme Seenthis ne rejette pas du tout Curl, seulement quand on est connecté alors justement c'est là on on est connu donc moins dangereux. Bref du coup tout a fonctionné et j'ai tout importé. Merci à tout le monde !
Auriez-vous des conseils pour transvaser certains seens en tant qu'étoilage (pas les contenus eux-mêmes) dans un nouveau compte, suivant des tags précis ?
Concrètement voilà le cas d'utilisation :