Beispiel #1
0
def main():
    """Fonction principale de mise à jour des données GPS"""

    # Initialisation de la connexion à la base de données
    database = Database()

    # Authentification auprès de l'API (->récupération token)
    api = Api()

    # Récupération de la liste des capteur actif
    # et de leur date de dernière synchronisation
    capteurs = database.selectCapteurs()

    # On boucle sur les capteurs pour récupérer les données
    for capteur in capteurs:
        capt_id = capteur['capt_id']
        deviceId = capteur['capt_id_constructeur']
        dtStart = capteur['loc_date_utc'].strftime("%Y-%m-%dT%H:%M:%S")

        responses = api.getlocalisation(deviceId, dtStart)

        # On boucle sur les nouvelles localisations GPS
        for response in responses:
            loc_long = response['Longitude']
            loc_lat = response['Latitude']
            loc_dop = response['PDOP']
            loc_altitude_capteur = response['Altitude']
            loc_temperature_capteur = response['Temperature']
            loc_date_capteur_utc = response['RecDateTime']

            if loc_long == 0 and loc_lat == 0:
                # Ici on n'a pas de coordonnées pour ce capteur à cette date
                loc_commentaire = 'Erreur : Pas de coordonnées'
                loc_anomalie = True

                database.insertNoLocData(capt_id, loc_dop,
                                         loc_altitude_capteur,
                                         loc_temperature_capteur,
                                         loc_date_capteur_utc, loc_commentaire,
                                         loc_anomalie)

            else:
                # Ici il n'y a pas d'anomalie dans les coordonnées
                database.insertLocData(capt_id, loc_long, loc_lat, loc_dop,
                                       loc_altitude_capteur,
                                       loc_temperature_capteur,
                                       loc_date_capteur_utc)

    # Fermeture de la connexion à la base de données
    database.close()
    def test_read_issues(self):
        dummyDbg = lambda x: None
        fixture = Api("no token", "https://foo.com", dummyDbg)
        #fixture.get_intellisense_suggestions("test")

        res: Sequence[
            IntellisenseResult] = fixture.parse_intellisense_suggestions(
                self.testdata.encode("UTF-8"))
        assert len(res) == 4
        assert self.equals(
            res[0],
            IntellisenseResult(start=0,
                               end=2,
                               description="by updated",
                               option="updated",
                               full_option="updated:",
                               prefix=None,
                               suffix=":"))
Beispiel #3
0
 def __init__(self):
     # Api.__init__(self, 'http://btgexp.com')
     Api.__init__(self, 'http://btgblocks.com')
Beispiel #4
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--summoner', help='summoner name')
    parser.add_argument('--match_id', help='match id')
    parser.add_argument('--roles',
                        help='comma separated list of possible roles')
    parser.add_argument('--lanes',
                        help='comma separated list of possible lanes')
    parser.add_argument('--champions',
                        help='comma separated list of possible champions')
    parser.add_argument('--teammate', help='teammate under consideration')
    parser.add_argument('--teammates',
                        help='comma separated list of teammates')
    parser.add_argument('--request', help='api request')
    parser.add_argument('--output', default="json", help='print as json|csv')
    args, unknown = parser.parse_known_args()

    with open("etc/config.json") as jdata:
        # initialization
        config = json.load(jdata)
        api = Api(config)
        analytics = Analytics(api)

        # parse arguments
        if args.roles is not None:
            roles = args.roles.split(",")
        else:
            roles = None
        if args.lanes is not None:
            lanes = args.lanes.split(",")
        else:
            lanes = None
        if args.champions is not None:
            champions = args.champions.split(",")
        else:
            champions = None
        if args.teammates is not None:
            teammates = args.teammates.split(",")
            if args.summoner is not None:
                teammates.remove(args.summoner)
            if args.teammate is not None:
                teammates.remove(args.teammate)
        else:
            teammates = None
        # print("roles={}".format(json.dumps(roles)))
        # print("lanes={}".format(json.dumps(lanes)))
        # print("champions={}".format(json.dumps(champions)))
        # print("teammates={}".format(json.dumps(teammates)))

        # basic requests
        if args.request == "get_summoner_by_name":
            resp = api.get_summoner_by_name(args.summoner)
            if args.output == "json":
                print(json.dumps(resp))
        if args.request == "get_matchlist_by_summoner":
            resp = api.get_matchlist_by_summoner(args.summoner)
            payload = analytics.get_matchlist(resp, roles, lanes)
            if args.output == "json":
                for record in payload:
                    print(json.dumps(record))
        if args.request == "get_champions_by_player":
            resp = api.get_matchlist_by_summoner(args.summoner)
            payload = analytics.get_champions_by_player(
                resp, args.summoner, champions)
            if args.output == "json":
                for record in payload:
                    print(json.dumps(record))
            elif args.output == "df":
                analytics.pretty_print_champion_player(payload)
        if args.request == "get_match_by_id":
            resp = api.get_match_by_id(args.match_id)
            payload = analytics.summarize_match(resp)
            if args.output == "json":
                print(json.dumps(payload))
            elif args.output == "csv":
                analytics.pretty_print_match(payload)
        if args.request == "get_matchdata_by_summoner":
            resp = api.get_matchlist_by_summoner(args.summoner)
            payload = analytics.get_matchdata_by_summoner(resp)
            for match in payload:
                analytics.pretty_print_match(match)
            print("found {} games".format(len(payload)))
        if args.request == "filter_match_by_data":
            resp = api.get_match_by_id(args.match_id)
            print(
                analytics.filter_match_by_data(resp, args.summoner, roles,
                                               lanes))

        # analytics requests
        if args.request == "get_stats_by_role":
            resp = api.get_matchlist_by_summoner(args.summoner)
            payload = analytics.get_stats_by_role(resp, args.summoner, roles,
                                                  lanes)
            analytics.pretty_print_stats(payload, args.summoner)
        if args.request == "get_stats_by_champion":
            resp = api.get_matchlist_by_summoner(args.summoner)
            payload = analytics.get_stats_by_champion(resp,
                                                      args.summoner,
                                                      champions=champions,
                                                      teammates=teammates)
            analytics.pretty_print_teammates(payload,
                                             args.summoner,
                                             teammates=teammates)
        if args.request == "get_impact_by_team":
            for teammate in teammates:
                resp = api.get_matchlist_by_summoner(teammate)
                payload = analytics.get_stats_by_champion(resp,
                                                          teammate,
                                                          champions=champions,
                                                          teammates=teammates)
                analytics.pretty_print_impact_by_team(payload, teammate)
        if args.request == "get_impact_of_teammate":
            summary = {"WinsMore": {}, "LosesMore": {}}
            for teammate in teammates:
                payload = analytics.pretty_print_impact_of_teammate(
                    teammates, teammate=teammate)
                for summoner in payload["WinsMore"]:
                    if summoner not in summary["WinsMore"]:
                        summary["WinsMore"][summoner] = 1
                    else:
                        summary["WinsMore"][summoner] += 1
                for summoner in payload["LosesMore"]:
                    if summoner not in summary["LosesMore"]:
                        summary["LosesMore"][summoner] = 1
                    else:
                        summary["LosesMore"][summoner] += 1
            print(json.dumps(summary))
Beispiel #5
0
 def __init__(self):
     Api.__init__(self, 'https://api.coindesk.com/v1/')
Beispiel #6
0
Datei: test.py Projekt: heeki/lol
 def setUpClass(cls):
     with open("etc/config.json") as jdata:
         config = json.load(jdata)
         print("setting up class: {}".format(json.dumps(config)))
         cls.api = Api(config)
         cls.analytics = Analytics(cls.api)
Beispiel #7
0
 def __init__(self):
     Api.__init__(self, 'http://sonoexplorer.com')
Beispiel #8
0
 def __init__(self, base_url="http://localhost:3000"):
     self.base_url = base_url
     Api.__init__(self, self.base_url)
Beispiel #9
0
 def __init__(self):
     Api.__init__(self, 'http://arc.altexplorer.co')
 def __init__(self):
     Api.__init__(self, 'https://whattomine.com/')
     self._coins = []
 def __init__(self):
     Api.__init__(self, 'https://api.coinmarketcap.com/v1/')
     self.coin_map = json.loads(open('./lib/cmc_currencies.json').read())