Jouons avec l'API des membres

Qui sera le plus original ?

a marqué ce sujet comme résolu.

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 ?

+13 -0

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.

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.

+2 -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 ?

+0 -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 ?

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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