IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

python & json : kimsufi


Sujet :

Python

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut python & json : kimsufi
    Bonjour,
    je souhaite commander un serveur kimsufi et il ne sont jamais disponibles, j'ai donc regardé si je pouvais trouver un script pour m'avertir dès qu'un serveur était disponible. (je ne suis pas développeur)
    J'ai trouvé plusieurs scripts qui partent sur l'analyse du fichier "https://ws.ovh.com/dedicated/r2/ws.dispatcher/getAvailability2".json pour voir la disponibilité.
    j'en ai modifié un en regardant comment fonctionne python pour ajouter une alerte popup et un redirection web sur la commande des serveurs.

    Mon problème est que je ne reçois pas d'alerte et pourtant les serveurs ont été disponible.

    Par defaut les serveurs sont unknown (pas disponible)
    J'ai donc testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zone['availability'] == "unknown"
    Et j'ai bien mes pop up et redirection web qui s'executent, ce qui est normal

    Mais quand
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zone['availability'] != "unknown"
    , je ne reçois jamais d'alerte (même quand les serveurs ont été dispos)

    Je pense que le problème vient peut être de l'analyse du fichier json, si vous pouvez m'éclairer, je rappel que je ne suis pas développeur.
    Voici le code : https://wall.deblan.org/x1d7f/python/1/
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Salut,

    J'ai testé ton code. La première fois, ne voyant pas de réponse après une trentaine de secondes, j'ai placé un print dans le code pour voir ce qui s'exécutait réellement mais cette seconde fois après cinq secondes les serveurs 'availables' sont apparus.

    Donc il fallait être patient.

    Il y a toutefois un hic, les serveurs 'availables' sont nombreux, très nombreux. Firefox en a eu une indigestion.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    Salut merci d'avoir essayé ,

    Désolé je n'ai pas précisé mais ce que je vise ce sont les serveurs kimsufi, du coup il faut mettre en argument au script, le nom de ces serveurs :
    Je les places en arguments comme cela : python kimsufi.py 150sk10 150sk20 150sk22
    Ils correspondent aux serveurs dediés KS-1 KS-2 et KS-2 SSD : https://www.kimsufi.com/fr/index.xml

    Mais ceux là ne s'affiche jamais (pas de pop-up rien) bien qu'ils apparaissent comme avoir été disponibles,"Dernier serveur livré : aujourd'hui à 11h52."
    Donc je me demande si le code est bon au niveau du filtrage de serveur correspondant à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zone['availability'] != "unknown"
    chez moi même avec tous les serveurs dediés, firefox n'est pas surchargé car il faut que je clique "OK" sur la popup pour que la redirection http du serveur se fasse.
    EDIT : dégouté, ça s'est passé pendant que j'écrivais cela : "Dernier serveur livré : aujourd'hui à 18h12."

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    EDIT 2 : J'ai été prévenu du serveur dedié KS-2 et j'ai pu acheté mon dedié , donc le script fonctionne.
    Pour ceux que cela intéresse, voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    ## Que permet le script :
    ## 1 : Ouvre une alerte en ligne de commande 
    ## 2 : ouvre une popup easygui (module easygui requis à placer dans le dossier) 
    ## 3 : ouvre le navigateur sur la page de commande : https://www.kimsufi.com/fr/commande/kimsufi.xml?reference=xxxx
    ## Ne pas mettre d'interval de moins de 8 secondes, sous peine d'obtenir cette erreur : quota getAvailability2 quota can't been exceeded (500 per 3600 seconds)
     
    ## Utilisation : Mettre en argument le nom des serveurs OVH, exemple : python kimsufi.py 150sk10 150sk20 150sk22
     
    import sys
    import json
    import requests
    import time
    import webbrowser
    import easygui
     
     
    INTERVAL = 8
     
    while True:
        try:
            availability = requests.get("https://ws.ovh.com/dedicated/r2/ws.dispatcher/getAvailability2").json()
            for serverType in availability['answer']['availability']:
                if serverType['reference'] in sys.argv or len(sys.argv) == 1:
                    for zone in serverType['zones']:
                        if zone['availability'] != "unknown":
                            message =  "%s is %s in %s " % (serverType['reference'], zone['availability'], zone['zone'])
                            print (message)
                            easygui.msgbox("Serveur présent %s is %s in %s " % (serverType['reference'], zone['availability'], zone['zone']), 'kimsufi')
                            webbrowser.open("https://www.kimsufi.com/fr/commande/kimsufi.xml?reference=%s" % (serverType['reference']))
                            time.sleep(1)
        except Exception as e:
            print (e)
        time.sleep(INTERVAL)


    Si vous n'êtes pas averti et que vous voyez pourtant qu'un serveur à été disponible, j'imagine que le temps que le serveur ovh rafraîchisse le fichier json + le temps que le script python fasse une requête sur chaque zone et attende l'intervalle de temps minimum de 8 secondes, il arrive que des serveurs soient disponibles puis loués sans même qu'on en soit averti par le script. Par exemple j'ai moi même mis moins de 20 secondes pour l'acheter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les infos JSON en Python
    Par Slaan dans le forum Général Python
    Réponses: 4
    Dernier message: 19/06/2018, 14h09
  2. Python, ligne de commande et Json.
    Par Jackbalek dans le forum Interfaçage autre langage
    Réponses: 5
    Dernier message: 02/07/2014, 13h23
  3. recuperer des données en json et en python
    Par samantha93 dans le forum Général Python
    Réponses: 1
    Dernier message: 24/02/2014, 18h07
  4. string json to objet python
    Par lenoil dans le forum Général Python
    Réponses: 4
    Dernier message: 15/11/2012, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo