def other_dev_main(dev_param): first_part_str = '{"id":%s,"name":%s,"description":%s,"room":%s,"type":"devices.types.other","capabilities":[' % ( str(dev_param[0]), str(dev_param[1]), str( dev_param[2]), str(dev_param[3])) file_capabil = str(dev_param[9].replace("\"", "")) capabilities = functions.read_list(file_capabil) capabil_params = "" for capab_str in capabilities: capab_str = functions.clean_text(capab_str) capab_list = capab_str.split(",") #тут проверяем умения if "on_off" in str(capab_list[0]): capabil_params = capabil_params + '{"type":"%son_off","retrievable":true},' % llen elif "toggle" in str(capab_list[0]): instance_str = str(capab_list[1]) capabil_params = capabil_params + '{"type":"%stoggle","retrievable":true,"parameters":{"instance":%s}},' % ( llen, instance_str) elif "range" in str(capab_list[0]): instance_str = str(capab_list[1]) min_val = int(capab_list[2]) max_val = int(capab_list[3]) prec = int(capab_list[4]) if "ifttt" in str(capab_list[5].replace("\"", "")).lower(): pass else: if "brightness" in instance_str or "open" in instance_str or "humidity" in instance_str: capabil_params = capabil_params + '{"type":"%srange","retrievable":true,"parameters":{"instance":%s,"random_access":true,"range":{"max":%s,"min":%s,"precision":%s},"unit":"unit.percent"}},' % ( llen, instance_str, max_val, min_val, prec) elif "temperature" in instance_str: capabil_params = capabil_params + '{"type":"%srange","retrievable":true,"parameters":{"instance":%s,"random_access":true,"range":{"max":%s,"min":%s,"precision":%s},"unit":"unit.temperature.celsius"}},' % ( llen, instance_str, max_val, min_val, prec) elif "channel" in instance_str or "volume" in instance_str: capabil_params = capabil_params + '{"type":"%srange","retrievable":true,"parameters":{"instance":%s,"random_access":true,"range":{"max":%s,"min":%s,"precision":%s}}},' % ( llen, instance_str, max_val, min_val, prec) else: pass #умение для RGB elif "color_setting" in str(capab_list[0]): capabil_params = capabil_params + '{"type":"%scolor_setting","retrievable":true,"parameters":{"color_model":"rgb"}},' % ( llen) else: pass capabil_params = capabil_params[0:(len(capabil_params) - 1)] third_path_str = '],"device_info":{"manufacturer":%s,"model":%s,"hw_version":%s,"sw_version":%s}}' % ( str(dev_param[4]), str(dev_param[5]), str( dev_param[6]), str(dev_param[7])) all_str = first_part_str + capabil_params + third_path_str return all_str
def control_scene(dev_id, req_save, dev_param, num_dev): file_capabil = str(dev_param[9].replace("\"", "")) #файл с конфигом сценария capabilities = functions.read_list( file_capabil) #список строк умений из файла #текущий интенс из запроса intence_cur = str(req_save['payload']['devices'][num_dev]['capabilities'] [0]['state']['instance']) #'"on"' resp_val = str(req_save['payload']['devices'][num_dev]['capabilities'][0] ['state']['value']) for capabil in capabilities: #для каждой строки в файле capabilstr = (functions.clean_text(str(capabil))).replace( "\"", "") #чистим от энтеров и кавычек url_any_on = str(capabilstr) if "True" in str(resp_val): any_send(url_any_on) else: pass all_str = '{"id":"%s","capabilities":[{"type":"devices.capabilities.on_off","state":{"instance":"on","action_result": {"status": "DONE"}}}]},' % dev_id return all_str
def control_other(dev_id, req_save, dev_param, num_dev): file_capabil = str(dev_param[9].replace("\"", "")) #файл с конфигом умений capabilities = functions.read_list( file_capabil) #список строк умений из файла #текущий интенс из запроса intence_cur = str(req_save['payload']['devices'][num_dev]['capabilities'] [0]['state']['instance']) #'"on"' #тип умения из запроса. Например: devices.capabilities.on_off type_capability = str( req_save['payload']['devices'][num_dev]['capabilities'][0]['type']) #проверяем on_off и шлем хук if "devices.capabilities.on_off" in type_capability: #текущее значение интенса. Например - 50 resp_val = str(req_save['payload']['devices'][num_dev]['capabilities'] [0]['state']['value']) for capabil in capabilities: #для каждой строки в файле capabil_list = functions.clean_text(str(capabil)).split( ",") #чистим от энтеров и делим параметры на список test_capabil = "devices.capabilities." + str(capabil_list[0]) test_capabil = test_capabil.replace( "\"", "") #строка для сравнения с полученным типом умения if type_capability in test_capabil: #если тип умнеия есть в текущей строке файла if "ifttt" in str(capabil_list[1].replace( "\"", "")).lower(): #если ifttt huk_on = str(capabil_list[2]).replace("\"", "") huk_off = str(capabil_list[3]).replace("\"", "") if "True" in str(resp_val): ifftt_send(huk_on) if "False" in str(resp_val): ifftt_send(huk_off) else: pass elif "blynk" in str(capabil_list[1].replace("\"", "")).lower(): blynk_token = str(capabil_list[3]).replace("\"", "") blynk_pin = str(capabil_list[2]).replace("\"", "") on_val = "1" off_val = "0" if "True" in str(resp_val): blynk_send(blynk_token, blynk_pin, on_val) if "False" in str(resp_val): blynk_send(blynk_token, blynk_pin, off_val) else: pass elif "any" in str(capabil_list[1].replace("\"", "")).lower(): url_any_on = str(capabil_list[2]).replace("\"", "") url_any_off = str(capabil_list[3]).replace("\"", "") if "True" in str(resp_val): any_send(url_any_on) if "False" in str(resp_val): any_send(url_any_off) else: pass else: pass else: pass all_str = '{"id":"%s","capabilities":[{"type":"devices.capabilities.on_off","state":{"instance":"%s","action_result": {"status": "DONE"}}}]},' % ( dev_id, intence_cur) elif "devices.capabilities.toggle" in type_capability: for capabil in capabilities: #для каждой строки в файле capabil_list = functions.clean_text(str(capabil)).split(",") test_intance = str(capabil_list[1]) test_intance = test_intance.replace("\"", "") if test_intance in intence_cur: if "ifttt" in str(capabil_list[2].replace("\"", "")).lower(): huk_on = str(capabil_list[3]).replace("\"", "") ifftt_send(huk_on) elif "blynk" in str(capabil_list[2].replace("\"", "")).lower(): blynk_token = str(capabil_list[4]).replace("\"", "") blynk_pin = str(capabil_list[3]).replace("\"", "") on_val = "1" blynk_send(blynk_token, blynk_pin, on_val) elif "any" in str(capabil_list[2].replace("\"", "")).lower(): url_any_on = str(capabil_list[3]).replace("\"", "") any_send(url_any_on) else: pass all_str = '{"id":"%s","capabilities":[{"type":"devices.capabilities.toggle","state":{"instance":"%s","action_result": {"status": "DONE"}}}]},' % ( dev_id, intence_cur) elif "devices.capabilities.range" in type_capability: #текущее значение интенса. Например - 50. resp_val = str(req_save['payload']['devices'][num_dev]['capabilities'] [0]['state']['value']) for capabil in capabilities: #для каждой строки в файле capabil_list = functions.clean_text(str(capabil)).split(",") test_intance = str(capabil_list[1]) test_intance = test_intance.replace("\"", "") if test_intance in intence_cur: #если совпадают названия интенсов if "ifttt" in str(capabil_list[5].replace("\"", "")).lower(): pass elif "blynk" in str(capabil_list[5].replace("\"", "")).lower(): max_in_dev = int(capabil_list[9].replace( "\"", "")) #максимальный предел на устройстве max_yandex = int(capabil_list[3].replace( "\"", "")) #максимальный предел в УДЯ blynk_token = str(capabil_list[7]).replace("\"", "") blynk_pin = str(capabil_list[6]).replace("\"", "") on_val = str(resp_val) on_val = str(round( (max_in_dev / max_yandex) * int(on_val))) blynk_send(blynk_token, blynk_pin, on_val) elif "any" in str(capabil_list[5].replace("\"", "")).lower(): max_in_dev = int(capabil_list[8].replace( "\"", "")) #максимальный предел на устройстве max_yandex = int(capabil_list[3].replace( "\"", "")) #максимальный предел в УДЯ url_any_on = str(capabil_list[6]).replace("\"", "") value_any = str(resp_val) value_any = str( round((max_in_dev / max_yandex) * int(value_any))) any_val_send(url_any_on, value_any) else: pass all_str = '{"id":"%s","capabilities":[{"type":"devices.capabilities.range","state":{"instance":"%s","action_result": {"status": "DONE"}}}]},' % ( dev_id, intence_cur) elif "devices.capabilities.color_setting" in type_capability: #если в запросе есть color_setting resp_val = str(req_save['payload']['devices'][num_dev]['capabilities'] [0]['state']['value']) #принятое значение RGB for capabil in capabilities: #для каждой строки в файле other.txt capabil_list = functions.clean_text(str(capabil)).split( ",") #чистим от энтеров и делим параметры на список test_capabil = "devices.capabilities." + str( capabil_list[0]) #задаем строку из файла для поиска test_capabil = test_capabil.replace( "\"", "") #строка из файла для сравнения с полученным типом умения if type_capability in test_capabil: #если тип умнеия есть в текущей строке файла if "ifttt" in str(capabil_list[4].replace( "\"", "")).lower(): #если ifttt print("\nIFTTT color_setting_not") elif "blynk" in str(capabil_list[4].replace( "\"", "")).lower(): #если blynk print("\nBLYNK color_setting") blynk_token = str(capabil_list[6]).replace("\"", "") blynk_pin = str(capabil_list[5]).replace("\"", "") print("\nЗначение RGB_управление = ", str(resp_val)) hex_val = "%06x" % int(resp_val) print("hex_val = ", hex_val) str_rgb = str( tuple(int(hex_val[i:i + 2], 16) for i in (0, 2, 4))) print("str_rgb = ", str_rgb) str_rgb_lst = (str_rgb[1:(len(str_rgb) - 1)]).replace( " ", "") str_rgb_lst = str_rgb_lst.split(",") red_r = int(capabil_list[1].replace("\"", "")) green_r = int(capabil_list[2].replace("\"", "")) blue_b = int(capabil_list[3].replace("\"", "")) red_cur = int(str_rgb_lst[0]) green_cur = int(str_rgb_lst[1]) blue_cur = int(str_rgb_lst[2]) green = str(round((red_r / 255) * red_cur)) red = str(round((green_r / 255) * green_cur)) blue = str(round((blue_b / 255) * blue_cur)) print("\nHEX RGB_управление = ", red, " ", green, " ", blue) blynk_sendRGB(blynk_token, blynk_pin, red, green, blue) elif "any" in str(capabil_list[4].replace( "\"", "")).lower(): #если другое устройство url_any = str(capabil_list[5].replace("\"", "")) print("\nANY color_setting") print("\nЗначение RGB_управление = ", str(resp_val)) hex_val = "%06x" % int(resp_val) print("hex_val = ", hex_val) str_rgb = str( tuple(int(hex_val[i:i + 2], 16) for i in (0, 2, 4))) print("str_rgb = ", str_rgb) str_rgb_lst = (str_rgb[1:(len(str_rgb) - 1)]).replace( " ", "") str_rgb_lst = str_rgb_lst.split(",") red_r = int(capabil_list[1].replace("\"", "")) green_r = int(capabil_list[2].replace("\"", "")) blue_b = int(capabil_list[3].replace("\"", "")) red_cur = int(str_rgb_lst[0]) green_cur = int(str_rgb_lst[1]) blue_cur = int(str_rgb_lst[2]) red = str(round((red_r / 255) * red_cur)) green = str(round((green_r / 255) * green_cur)) blue = str(round((blue_b / 255) * blue_cur)) print("\nHEX RGB_управление = ", red, " ", green, " ", blue) any_val_sendRGB(url_any, red, green, blue) else: print("\nnoconnect color_setting") else: print("\nNO color_setting") all_str = '{"id":"%s","capabilities":[{"type":"devices.capabilities.color_setting","state":{"instance":"rgb","action_result": {"status": "DONE"}}}]},' % ( dev_id) else: pass return all_str
def status_other(dev_param, dev_id, req_save): first_part_str = '{"devices":[{"id":"%s","capabilities": [' % dev_id file_capabil = str(dev_param[9].replace("\"", "")) capabilities = functions.read_list(file_capabil) capabil_params = "" for capab_str in capabilities: #для каждой строки в файле capab_str = functions.clean_text(capab_str) capab_list = capab_str.split( ",") #разбиваем текущую строку на параметры if "on_off" in str(capab_list[0]): status_io = str(capab_list[4].replace("\"", "")).lower() #статус или нет if "status" in status_io: #если статус if "blynk" in str(capab_list[1].replace("\"", "")).lower(): blynk_token = str(capab_list[3]).replace("\"", "") blynk_pin = str(capab_list[2]).replace("\"", "") current_val = blynk_get_val(blynk_token, blynk_pin) if "1" in current_val: st_value = "true" else: st_value = "false" else: #если ifttt или any url_any = str(capab_list[5].replace("\"", "")) current_val = any_get_all(url_any) str_for_search = str(capab_list[6].replace("\"", "")) if str_for_search in current_val: st_value = "true" else: st_value = "false" capabil_params = capabil_params + '{"type":"%son_off","state":{"instance":"on","value":%s}},' % ( llen, st_value) else: capabil_params = capabil_params + '{"type":"%son_off","state":{"instance":"on","value":false}},' % llen elif "toggle" in str(capab_list[0]): instance_str = str(capab_list[1]) if "blynk" in str(capab_list[2].replace("\"", "")).lower(): status_io = str(capab_list[5].replace( "\"", "")).lower() #статус или нет else: status_io = str(capab_list[4].replace( "\"", "")).lower() #статус или нет if "status" in status_io: #если статус if "blynk" in str(capab_list[2].replace("\"", "")).lower(): blynk_token = str(capab_list[4]).replace("\"", "") blynk_pin = str(capab_list[3]).replace("\"", "") current_val = blynk_get_val(blynk_token, blynk_pin) if "1" in current_val: st_value = "true" else: st_value = "false" else: #если ifttt или any url_any = str(capab_list[5].replace("\"", "")) current_val = any_get_all(url_any) str_for_search = str(capab_list[6].replace("\"", "")) if str_for_search in current_val: st_value = "true" else: st_value = "false" capabil_params = capabil_params + '{"type":"%stoggle","state":{"instance":%s,"value":%s}},' % ( llen, instance_str, st_value) else: capabil_params = capabil_params + '{"type":"%stoggle","state":{"instance":%s,"value":false}},' % ( llen, instance_str) elif "range" in str(capab_list[0]): instance_str = str(capab_list[1]) if "blynk" in str(capab_list[5].replace("\"", "")).lower(): status_io = str(capab_list[8].replace( "\"", "")).lower() #статус или нет max_in_dev = int(capab_list[9].replace( "\"", "")) #максимальный предел на устройстве else: status_io = str(capab_list[7].replace( "\"", "")).lower() #статус или нет max_in_dev = int(capab_list[11].replace( "\"", "")) #максимальный предел на устройстве max_yandex = int(capab_list[3].replace( "\"", "")) #максимальный предел в УДЯ if "status" in status_io: #если статус if "ifttt" in str(capab_list[5].replace("\"", "")).lower(): pass #не поддерживается elif "blynk" in str(capab_list[5].replace("\"", "")).lower(): blynk_token = str(capab_list[7]).replace("\"", "") blynk_pin = str(capab_list[6]).replace("\"", "") current_val = blynk_get_val(blynk_token, blynk_pin) current_val = int( round((max_yandex / max_in_dev) * int(current_val))) capabil_params = capabil_params + '{"type":"%srange","state":{"instance":%s,"value":%s}},' % ( llen, instance_str, current_val) elif "any" in str(capab_list[5].replace("\"", "")).lower(): url_any = str(capab_list[8].replace("\"", "")) indS = str(capab_list[9]) indE = str(capab_list[10]) current_val = any_get(url_any, indS, indE) capabil_params = capabil_params + '{"type":"%srange","state":{"instance":%s,"value":%s}},' % ( llen, instance_str, current_val) else: val_rang = 100 capabil_params = capabil_params + '{"type":"%srange","state":{"instance":%s,"value":%s}},' % ( llen, instance_str, val_rang) else: val_rang = 100 capabil_params = capabil_params + '{"type":"%srange","state":{"instance":%s,"value":%s}},' % ( llen, instance_str, val_rang) #статус RGB elif "color_setting" in str(capab_list[0]): if "blynk" in str(capab_list[4].replace("\"", "")).lower(): status_io = str(capab_list[7].replace( "\"", "")).lower() #статус или нет elif "any" in str(capab_list[4].replace("\"", "")).lower(): status_io = str(capab_list[6].replace("\"", "")).lower() else: status_io = "nostatus" if "status" in status_io: if "ifttt" in str(capab_list[4].replace("\"", "")).lower(): pass #не поддерживается if "blynk" in str(capab_list[4].replace("\"", "")).lower(): blynk_token = str(capab_list[6]).replace("\"", "") blynk_pin = str(capab_list[5]).replace("\"", "") current_val = blynk_get_val(blynk_token, blynk_pin) list_rgb = current_val.split( ",") #разбиваем текущую строку на параметры green = int( round((255 / (int(capab_list[1].replace("\"", "")))) * int(list_rgb[0]))) red = int( round((255 / (int(capab_list[2].replace("\"", "")))) * int(list_rgb[1]))) blue = int( round((255 / (int(capab_list[3].replace("\"", "")))) * int(list_rgb[2]))) print("RGB_from_blynk ", str(red), " ", str(green), " ", str(blue)) rgb_all = rgb_to_hex((red, green, blue)) print(str(rgb_all)) val_rgb = int(rgb_all, 16) print("\nR " + str(red) + " G " + str(green) + " B " + str(blue)) print("\ndec = ", val_rgb) capabil_params = capabil_params + '{"type":"%scolor_setting","state":{"instance":"rgb","value":%s}},' % ( llen, val_rgb) if "any" in str(capab_list[4].replace("\"", "")).lower(): capabil_params = capabil_params + '{"type":"%scolor_setting","state":{"instance":"rgb","value":0}},' % ( llen) else: capabil_params = capabil_params + '{"type":"%scolor_setting","state":{"instance":"rgb","value":0}},' % ( llen) else: pass capabil_params = capabil_params[0:(len(capabil_params) - 1)] third_path_str = ']}]}}' all_str = first_part_str + capabil_params + third_path_str return all_str
class sentence_generator: root_dir = os.path.dirname(os.path.abspath(__file__)) queries = functions.read_list(root_dir + '/data/queries.txt') real_bay_area_address = functions.read_list(root_dir + '/data/bay_area_addresses.csv') street_names = functions.read_weighted_dict( root_dir + '/data/us_street_name_sorted_top75percent.csv') city_names = functions.read_list(root_dir + '/data/us_cities.csv') state_names = functions.read_list(root_dir + '/data/us_states.csv') # Function def: read_person_names(file_name. accumulated prob threshold) female_first_names = functions.read_person_names( root_dir + '/data/dist.female.first', 10) male_first_names = functions.read_person_names( root_dir + '/data/dist.male.first', 10) last_names = functions.read_person_names(root_dir + '/data/dist.all.last', 10) day_of_week = functions.read_list(root_dir + '/data/DAY-OF-WEEK.vocab') person_famous = functions.read_list(root_dir + '/data/PERSON-FAMOUS.vocab') restaurant_types = functions.read_list(root_dir + '/data/RESTAURANT-TYPE.vocab') restaurant_food = functions.read_list(root_dir + '/data/RESTAURANT-FOOD.vocab') restaurant_names = functions.read_list(root_dir + '/data/RESTAURANT-NAME.vocab') retailers = functions.read_list(root_dir + '/data/RETAILER.vocab') websites = functions.read_list(root_dir + '/data/WEBSITE.vocab') sentences = functions.read_list(root_dir + '/data/sentences.txt') story_sentences = functions.read_list(root_dir + '/data/story_sentences.txt') time_format = dict() time_format['%I:%M %p'] = 0.6 # e.g. '10:40 AM' time_format['%I:%M'] = 0.4 # e.g. '06:35' date_format = dict() # replaced %d with {d}, so as to add prefix (th, st, nd, rd) in generate_date function date_format['%A, %B {d}'] = 0.5 # e.g. 'Sunday, November 19th' date_format['%B {d}'] = 0.3 # e.g. 'March 11th' date_format['{d} of %B'] = 0.2 # e.g. '24th of December' # define weights for number of digits to be generated for street numbers num_digit = dict() num_digit[1] = 9 num_digit[2] = 90 num_digit[3] = 100 num_digit[4] = 100 time_format = dict() time_format['%I:%M %p'] = 0.6 # e.g. '10:40 AM' time_format['%I:%M'] = 0.4 # e.g. '06:35' def generate_time(self): """ Generate random time Format is configured in time_format variable Sample output: '10:40 AM', '03:17 PM', '06:35' """ dt = datetime.datetime(2000, 01, 01, randint(0, 23), randint(0, 11) * 5) time_str = dt.strftime(functions.weighted_random(self.time_format)) if (time_str[0] == '0'): time_str = time_str[1:] return time_str def suffix(self, d): return 'th' if 11 <= d <= 13 else { 1: 'st', 2: 'nd', 3: 'rd' }.get(d % 10, 'th') def custom_strftime(self, format, t): return t.strftime(format).replace('{d}', str(t.day) + self.suffix(t.day)) date_format = dict() # replaced %d with {d}, so as to add prefix (th, st, nd, rd) in generate_date function date_format['%A, %B {d}'] = 0.5 # e.g. 'Sunday, November 19th' date_format['%B {d}'] = 0.3 # e.g. 'March 11th' date_format['{d} of %B'] = 0.2 # e.g. '24th of December' def generate_date(self): """ Generate random date Format is configured in date_format variable Sample output: '10:40 AM', '03:17 PM', '06:35' """ dt = datetime.datetime(2000, randint(1, 12), randint(1, 29)) date_str = self.custom_strftime( functions.weighted_random(self.date_format), dt) # date_str = dt.strftime(weighted_random(date_format)) return date_str def generate_street_num(self, num_digit): street_num = '' for i in range(num_digit): if (i == 0): digit = randint(1, 9) else: digit = randint(0, 9) street_num += str(digit) return street_num def generate_street_name(self): street_name_with_num = self.generate_street_num( functions.weighted_random( self.num_digit)) + ' ' + functions.weighted_random( self.street_names) # add city_state_name with 30% and 10% prob city_state_name = '' rand_num = random() if (rand_num < 0.3): city_state_name = city_state_name + ', ' + functions.random_ele( self.city_names) if (rand_num < 0.1): city_state_name = city_state_name + ', ' + functions.random_ele( self.state_names) return street_name_with_num + city_state_name def generate_bay_area_address(self): return functions.random_ele(self.real_bay_area_address) def generate_phone_number(self): phone_num = [] for i in range(10): count = i + 1 if (count == 1): digit = str(randint(1, 9)) phone_num.append(digit) elif (count == 3 or count == 6): digit = str(randint(0, 9)) phone_num.append(digit) phone_num.append('-') else: digit = str(randint(0, 9)) phone_num.append(digit) return ' '.join(phone_num) def generate_name_with_phone_number(self): actions = ['Call', 'Dail', 'Make a call to'] name = self.generate_first_name() phone_num = self.generate_phone_number() action = actions[randint(0, len(actions) - 1)] return action + ' %s at %s' % (name, phone_num) def generate_query(self): query = functions.random_ele(self.queries) match_subs = re.findall(r'@([^ ]+)', query) if len(match_subs) > 0: for match_term in match_subs: # print ('Replacing ' + match_term) query = re.sub(r'@' + match_term, self.generate_phrase(match_term), query).capitalize() return query def generate_city(self): return functions.random_ele(self.city_names) def generate_day_of_week(self): return functions.random_ele(self.day_of_week) def generate_person_famous(self): return functions.random_ele(self.person_famous) def generate_first_name(self): if (randint(0, 1) % 2 == 0): first_name = functions.weighted_random(self.female_first_names) else: first_name = functions.weighted_random(self.male_first_names) return first_name def generate_last_name(self): last_name = functions.weighted_random(self.last_names) return last_name def generate_name(self): name = self.generate_first_name() + ' ' + self.generate_last_name() return name def generate_restaurant_type(self): return functions.random_ele(self.restaurant_types) def generate_restaurant_food(self): return functions.random_ele(self.restaurant_food) def generate_restaurant_name(self): return functions.random_ele(self.restaurant_names) def generate_retailer(self): return functions.random_ele(self.retailers) def generate_website(self): return functions.random_ele(self.websites) def generate_starting_notice(self): notice = list() notice.append('Now it\'s time to get started.') notice.append( 'I understand that the data collected via this App will be used for development purposes.' ) notice.append('We thank you in advance for your help.') return '\n'.join(notice) def generate_ending_notice(self): notice = list() notice.append( 'This reading task is now complete, thank you for your time.') return '\n'.join(notice) def generate_simple_sentences(self): samples = list() samples.append('Check for new messages.') samples.append('Hello.') samples.append('Goodbye.') samples.append('Yes.') samples.append('No.') samples.append('Help.') samples.append('Open Facebook.') samples.append('Start navigation.') samples.append('Create a new Email.') return '\n'.join(samples) def generate_story_sentences(self): sample_length = 25 start_index = randint(0, len(self.story_sentences) - sample_length) end_index = start_index + sample_length sample_sentences = self.story_sentences[start_index:end_index] return '\n'.join(sample_sentences) def generate_sentences(self): return functions.random_ele(self.sentences) def generate_phrase(self, phrase_type): phrase = '' if (phrase_type == 'CITY'): phrase = self.generate_city() elif (phrase_type == 'DAY-OF-WEEK'): phrase = self.generate_day_of_week() elif (phrase_type == 'PERSON-FAMOUS'): phrase = self.generate_person_famous() elif (phrase_type == 'PERSON-FIRSTNAME'): phrase = self.generate_first_name() elif (phrase_type == 'PERSON-LASTNAME'): phrase = self.generate_last_name() elif (phrase_type == 'RESTAURANT-TYPE'): phrase = self.generate_restaurant_type() elif (phrase_type == 'RESTAURANT-FOOD'): phrase = self.generate_restaurant_food() elif (phrase_type == 'RESTAURANT-NAME'): phrase = self.generate_restaurant_name() elif (phrase_type == 'RETAILER'): phrase = self.generate_retailer() elif (phrase_type == 'TIME'): phrase = self.generate_time() elif (phrase_type == 'WEBSITE'): phrase = self.generate_website() return phrase def generate_sentence(self, sentence_type): sentence = '' if (sentence_type == 'STARTING_NOTICE'): sentence = self.generate_starting_notice() elif (sentence_type == 'SIMPLE_SENTENCE'): sentence = self.generate_simple_sentences() elif (sentence_type == 'NUMBER'): sentence = self.generate_street_num( functions.weighted_random(self.num_digit)) elif (sentence_type == 'TIME'): sentence = self.generate_time() elif (sentence_type == 'DAY_OF_WEEK'): sentence = self.generate_day_of_week() elif (sentence_type == 'DATE'): sentence = self.generate_date() elif (sentence_type == 'PHONE_NUMBER'): sentence = self.generate_phone_number() elif (sentence_type == 'NAME_WITH_PHONE_NUMBER'): sentence = self.generate_name_with_phone_number() elif (sentence_type == 'NAME'): sentence = self.generate_name() elif (sentence_type == 'STREET_ADDRESS'): sentence = self.generate_street_name() elif (sentence_type == 'BAY_AREA_ADDRESS'): sentence = self.generate_bay_area_address() elif (sentence_type == 'QUERY'): sentence = self.generate_query() elif (sentence_type == 'SENTENCE'): sentence = self.generate_sentences() elif (sentence_type == 'ENDING_NOTICE'): sentence = self.generate_ending_notice() return sentence
def get_list_dev(): list_dev = functions.read_list(path_devices) return (list_dev)