Jouons avec l'API des membres

Qui sera le plus original ?

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut tout le monde !

La plupart d'entres vous le savent déjà, l'API des membres vient d’êtres mise en ligne. Grosso modo cela signifie qu'on a facilement accès aux infos des membres, c'est plutôt chouette et du beau boulot (en tout cas je trouve ça génial !)

Histoire de jouer un peu avec, je vous propose de partager des idées de petites applications qui pourraient être crées pour exploiter cette dernière. Les avantages sont triples : Ca peut faire naître des applications rigolotes + ça permet de déboguer l'API un peu plu + ca vous entraîne si vous ne vous êtes jamais amuses avec une API avant !

Pour info, voici les infos accessibles via l'API :

  • pk (integer)
  • username (string)
  • show_email (boolean)
  • email (email)
  • is_active (boolean)
  • site (string)
  • avatar_url (string)
  • biography (string)
  • sign (string)
  • email_for_answer (boolean)
  • last_visit (datetime)
  • date_joined (datetime)

Sans plus attendre, voici des petites idées que j'ai eu. Je n'aurais probablement jamais le temps de les développer donc si qqun veut me les piquer qu'il le fasse ! Si vous en avez d'autres, postez !

A qui est cette signature ?

Le but est simple. Une signature est tirée au sort et le joueur doit la retrouver parmi trois membres proposée (niveau de difficulté simple) ou carrément donner le pseudo en toute lettre (niveau difficile). Un tableau des scores sera entretenu pour connaitre le meilleur joueur (plus grand nombre de bonnes réponses consécutives).

Une variante du jeu peut-être "A qui est cet avatar ?".

Avatar Fight

Dans la grande lignée des concours de beauté de tout bord mais en bien plus digne, pourquoi pas faire un petit truc de comparaison d'avatar. Principe : deux avatars sont tire au sort puis le "joueur" doit dire lequel il préfère. Ainsi, une page de "top des avatars" peut-être générée pour voir qu'elle avatar le plus loufoque/beau est favoris des participants. Bien sur pour plus de style un classement quotidien/hebdomadaire/mensuel/annuel/toujours serait un plus !

Timeline des membres

Inutile mais un bon entrainement pour faire un joli truc, pourquoi pas faire une joli frise chronologique de "qui est arrivée quand ?"


Voila pour quelques idées ! Et vous, qu'imaginez-vous pour ce morceau de l'API ?

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+14 -0

Inutile mais un bon entrainement pour faire un joli truc, pourquoi pas faire une joli frise chronologique de "qui est arrivée quand ?"

C'est clairement le premier truc que je voulais faire !

Happiness is a warm puppy

+0 -0
Staff

A noter que j'ai un début de lib cliente de l'API en python (3) chez moi. Je vais essayer de finaliser une première version ce week-end, ça pourra permettre aux gens d'expérimenter plus facilement.

+0 -0
Staff

Quand je l'aurait mise au propre, rajouté de la doc et des tests, il suffira de déplacer le dépot sous l'organisation. Mais effectivement proposer quelques clients d'API directement serait bien.

+0 -0

Cool :) Et te connaissant ce sera en javascript n'est ce pas ?

Ca aurait pu être en Groovy avec JFreechart mais c'est pas très très dynamique. J'ai bien envie de jouer avec React en plus.

Par contre je contribue à un projet assez important ( http://vertx.io ) et ce week-end j'ai du pain sur la planche :\

Happiness is a warm puppy

+1 -1
Staff

Pour infos, vu que la doc est générée avec swagger, on peut aussi tenter d'utiliser un outil swagger qui génère des clients dans différents langages (Android, Java, NodeJS, PHP, Obj-C et python sont dispos par exemple).

Ca reste des clients basiques, mais ça fonctionne pas trop trop mal pour un usage simple (en tout cas celui que j'avais généré en Java pour une API au boulot). Si ça vous botte, je peux rejouer avec et voir ce que ça donne.

<3

+0 -0

Hello,

Comme j’aime les stats et que je suis un sagouin, j’ai fait un petit script bien immonde pour tracer l’évolution du nombre de membres du site. Autant vous prévenir tout de suite ça pique les yeux.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# -*- coding: utf-8 -*-


from __future__ import (absolute_import, division,
                        print_function)
import urllib2
import json
from pprint import pprint
from datetime import datetime
import matplotlib.dates
import matplotlib.pyplot as plt
import numpy as np
from time import sleep
import sys

date_list = []
url = 'http://zestedesavoir.com/api/membres/?page=1&page_size=100'

while(url):
    print(url)
    try:
        response = urllib2.urlopen(url)
    except urllib2.HTTPError, e:
        print(e)
        print(u'arrête de spammer le ZdS')
        break
    data = json.loads(response.read())
    for user in data['results']:
        strdate = user['date_joined']
        date = datetime.strptime(strdate, '%Y-%m-%dT%H:%M:%S')
        numdate = matplotlib.dates.date2num(date)
        date_list.append(numdate)
    np.savetxt('datelist.txt', date_list)
    url = data['next']
    sleep(5) # laisse le serveur respirer
    

#date_list = np.loadtxt('datelist.txt')


fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(date_list, bins=1000, cumulative=True, histtype='step')
locs = matplotlib.dates.AutoDateLocator()
ax.xaxis.set_major_locator(locs)
ax.xaxis.set_major_formatter(matplotlib.dates.AutoDateFormatter(locs))
fig.suptitle(u'Évolution du nombres de membres')
ax.grid(True)
fig.autofmt_xdate()
plt.show()

Voici le rendu :

Évolution du nombre de membres

On voit clairement l’ouverture au publique début juillet et un rythme de croisière s’installer en septembre.

Édité par simbilou

La répétition est la base de l’enseignement. — ☮ ♡

+5 -0

J'essayais de faire un petit programme qui permettrait de voir les pseudos les plus proches du sien (distance de Levenshtein) quand j'ai eu :

1
2
3
4
5
<root>
<detail>
Request was throttled. Expected available in 2534 seconds.
</detail>
</root>

Il me semble que c'est une limite de requêtes du serveur de l'api en 1 heure. Que faire ?

"Easy is right. Begin right and you are easy. Continue easy and you are right. The right way to go easy Is to forget the right way And forget that the going is easy." Chuang Tzu

+0 -0
Staff

Tu peux faire 60 requête par heure ou 2000 si tu te connecte.

Note que tu peux récupérer tous les pseudos facilement, tu demande des pages de 100 membres d'un coups, en 20 pages tu devrait avoir tout

+1 -0

J'essaye l'exemple de la doc http://zds-site.readthedocs.org/fr/latest/api.html , mais je ne sais pas quoi mettre pour client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=password. Quelqu'un a une idée ?

"Easy is right. Begin right and you are easy. Continue easy and you are right. The right way to go easy Is to forget the right way And forget that the going is easy." Chuang Tzu

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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