def get_json(json_str): if not util.is_json(json_str): raise HttpBadRequestException( reason_phrase=make_not_json_request_error() ) return json.loads(json_str)
def deal_command(self, socket, data): sys.path.append("..") import config import util if '0x01' in data: #摄像头操作 global pid pid = Communicate().createCamereDaemon() elif '0x02' in data: #自定义命令 cus_command = data.split(':')[1] if cus_command != '': os.system(cus_command) elif '0x03' in data: util.kill(pid) util.folder_move_all(config.FILE_PATH, config.PIC_PATH) elif '0x04' in data: Communicate().sendFile(socket, config.LOG_PATH) elif '0x05' in data: key = data.split(':')[1] value = data.split(':')[2] if key != '' and value != '': util.alter("/home/nvidia/Horus/config.py", key, value) elif '0x06' in data: global envid envid = Communicate().createnvDaemon() elif '0x07' in data: util.kill(envid) elif 'test' in data: pass else: if util.is_json(data): with open('/home/nvidia/Horus/mysql/sql.cnf') as json_data: cnf = json.load(json_data) db = create_engine(cnf['db']) s = json.loads(data) insert_data = "insert into tb_mobile_sensor(timestamp,accx,accy,accz,gpsLongitude,gpsLatitude,gpsAltitude,gpsSpeed,gpsBearing,light,deviceID,frequency) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" % ( s["time"], s["accx"], s["accy"], s["accz"], s["longitude"], s["latitude"], s["altitude"], s["speed"], s["bearing"], s["lightx"], s["deviceID"], s["frequency"]) db.execute(insert_data)
def get_num_unique_tweets_by_hashtag(): #Number tweets by # get_hashtags_sql_str = "select tweet_by_user_id, hashtags from tweets" hashtags_df = Util.extract_data_into_df(get_hashtags_sql_str) tracking_hashtags = ["hashtag1", "hashtag2"] hashtags_tweet_usage = dict(zip(tracking_hashtags, [0, 0, 0, 0, 0, 0])) for idx, row in hashtags_df.iterrows(): if Util.is_json(row['hashtags']): tweet_htags = json.loads(row['hashtags']) tr_htags_present = [] for s in tweet_htags: if Util.is_ascii(s): if s in tracking_hashtags: tr_htags_present.append(s) for t in tr_htags_present: hashtags_tweet_usage[t] += 1 return json.dumps(hashtags_tweet_usage)
def get_top_n_tweets_by_hashtag(n): #Top N tweets by # get_hashtags_sql_str = "select hashtags, text from tweets" hashtags_df = Util.extract_data_into_df(get_hashtags_sql_str) tracking_hashtags = ['hashtag1', 'hashtag2'] hashtags_tweet_text = {} for idx, row in hashtags_df.iterrows(): if Util.is_json(row['hashtags']): tweet_htags = json.loads(row['hashtags']) tr_htags_present = [] for s in tweet_htags: if Util.is_ascii(s): if s in tracking_hashtags: tr_htags_present.append([s, row['text']]) for t in tr_htags_present: if str(t[0]) in hashtags_tweet_text: if len(hashtags_tweet_text[str(t[0])]) <= n: hashtags_tweet_text[str(t[0])].append(t[1]) else: hashtags_tweet_text[str(t[0])] = [t[1]] return json.dumps(hashtags_tweet_text)
def deal_command(self, socket, data): sys.path.append("..") import util if '0x01' in data: #打开摄像头 util.Logprint(2, data) cmd = '/home/nvidia/Horus/opencamera' subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) elif '0x02' in data: #自定义命令 util.Logprint(2, data) cus_command = data.split(':')[1] if cus_command != '': os.system(cus_command) elif '0x03' in data: util.Logprint(2, data) #关闭摄像头 pids = psutil.pids() for pid in pids: p = psutil.Process(pid) # if "python" in p.name(): # ss=p.cmdline() # if len(ss)>0: # if ss[1]=="/home/nvidia/Horus/opencamera.py": # util.kill(pid) # util.Logprint(1,data) if "opencamera" in p.name(): util.kill(pid) elif '0x04' in data: #发送日志 # Communicate().sendFile(socket,config.LOG_PATH) pass elif '0x05' in data: import util #更新config的level值 util.Logprint(2, data) #设置config key = data.split(':')[1] value = data.split(':')[2] #修改K-V with open('/home/nvidia/Horus/config.cnf') as f: cnf = json.load(f) cnf[key] = value jsonstr = json.dumps(cnf, ensure_ascii=False, sort_keys=True) util.replace('/home/nvidia/Horus/config.cnf', jsonstr) elif '0x06' in data: util.Logprint(2, data) #打开环境传感器 global envid envid = Communicate().createnvDaemon() elif '0x07' in data: util.Logprint(2, data) #关闭环境传感器 util.kill(envid) elif '0x08' in data: util.Logprint(2, data) obddata = data[5:] if util.is_json(obddata): with open('/home/nvidia/Horus/config.cnf') as json_data: cnf = json.load(json_data) db = create_engine(cnf['db']) s = json.loads(obddata) insert_data = "insert into tb_obd(timestamp,longitude,latitude,altitude,speed) values (%s,%s,%s,%s,%s)" % ( s["timestamp"], s["longitude"], s["latitude"], s["altitude"], s["speed"]) db.execute(insert_data) elif '0x09' in data: util.Logprint(2, data) pids = psutil.pids() for pid in pids: p = psutil.Process(pid) if "python" in p.name(): ss = p.cmdline() if len(ss) > 0: if ss[1] == "Horus.py": util.kill(pid) util.Logprint(1, data) if "Horus" in p.name(): util.kill(pid) # elif 'test' in data: util.Logprint(1, data) #心跳测试和数据库表的条目查询 Communicate().dbquery(socket) pass else: util.Logprint(1, data) #手机端json数据 if util.is_json(data): with open('/home/nvidia/Horus/config.cnf') as json_data: cnf = json.load(json_data) db = create_engine(cnf['db']) s = json.loads(data) insert_data = "insert into tb_mobile_sensor(timestamp,accx,accy,accz,gpsLongitude,gpsLatitude,gpsAltitude,gpsSpeed,gpsBearing,light,deviceID,frequency) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" % ( s["time"], s["accx"], s["accy"], s["accz"], s["longitude"], s["latitude"], s["altitude"], s["speed"], s["bearing"], s["lightx"], s["deviceID"], s["frequency"]) db.execute(insert_data)