def main(): if not keyboard.is_keyboard(): return text = keyboard.get_selected_text() if not text: dialogs.hud_alert('No text selected', 'error') return new_text = text.lower() keyboard.insert_text(new_text)
def button_action(self, sender): if sender.title == '⏎': self.bw = 125 FILE = open(f'Options.txt', "r+", encoding="utf-8") for line in FILE: line = line.replace('\n', '') self.dict[line] = 'Options' self.Rebuild(self.dict, 125) return if sender.title == 'Faces': self.bw = 125 FILE = open(f'{sender.title}.txt', "r+", encoding="utf-8") for line in FILE: line = line.replace('\n', '') if line.strip() == '': continue self.dict[line] = line self.Rebuild(self.dict, 40) return if sender.name == 'Options': self.bw = 125 FILE = open(f'{sender.title}.txt', "r+", encoding="utf-8") for line in FILE: line = line.replace('\n', '') if line.strip() == '': continue if ':' in line: k, v = line.split(':') self.dict[k] = '⏎' + v else: self.dict[line[0]] = '⏎' + line self.Rebuild(self.dict, 40) return if sender.name == sender.title: self.bw = 40 if keyboard.is_keyboard(): keyboard.insert_text(sender.name) return else: print('Keyboard input:', sender.title) return if ':' not in sender.name: self.dict.clear() for char in sender.name: self.dict[char] = char self.Rebuild(self.dict, 40) return
def main(): if not keyboard.is_keyboard(): return dics = get_dics('Snippet Regular Expression.txt') items = [d['title'] + ' ' + d['desc'] for d in dics] selected_item = dialogs.list_dialog('select', items) if not selected_item: return idx = items.index(selected_item) new_text = dics[idx]['title'] keyboard.insert_text(new_text)
def main(): if not keyboard.is_keyboard(): print('This script is meant to be run in the Pythonista keyboard.') return # (phrase, shortcut) all = keyboard.get_text_replacements() snippets = [s[0] for s in all if s[1] == '☻'] snippets.sort() if len(snippets) == 0: dialogs.hud_alert('No Text Replacements') return selected = dialogs.list_dialog('Text Replacements', snippets) if selected: keyboard.insert_text(selected)
def extract_code(): language_preference = ['fi', 'en', 'se'] load_framework('Vision') VNRecognizeTextRequest = ObjCClass('VNRecognizeTextRequest') VNImageRequestHandler = ObjCClass('VNImageRequestHandler') pil_image = clipboard.get_image() text = "" if pil_image is not None: buffer = io.BytesIO() pil_image.save(buffer, format='PNG') image_data = buffer.getvalue() req = VNRecognizeTextRequest.alloc().init().autorelease() req.setRecognitionLanguages_(language_preference) handler = VNImageRequestHandler.alloc().initWithData_options_( image_data, None).autorelease() success = handler.performRequests_error_([req], None) if success: for result in req.results(): text += str(result.text()) + "\n" else: print('Problem recognizing anything') text = re.sub(" ", "", text) dtext = text.split("\n") code = "" for d in dtext: try: if d[0] == "X" and len(d) == 16: code = d except: abco = 1 if d.count("AQ") > 0: code = d if not code == "": print(code) keyboard.insert_text(code) else: console.hud_alert("認識できませんでした。", "error", 0.3)
def main(): if not keyboard.is_keyboard(): return text = keyboard.get_selected_text() if not text: dialogs.hud_alert('No text selected', 'error') return snippets = get_dics('Surround Text.txt') selected = dialogs.list_dialog('select Replacements', snippets) if not selected: return m = re.match(r'^(.*)〜(.*)$', selected) if not m: return g = m.groups() left = g[0] right = g[1] newText = left + text + right keyboard.insert_text(newText)
def main(): text = keyboard.get_selected_text() text = re.sub("^ ", "", text) text = re.sub(" <br>$", "", text) text = re.sub("<br>$|^<br>", "", text) text = re.sub("<u>|</u>", "", text) text = re.sub( "<td>|</td>|<tr>|</tr>|<tbody>|</tbody>|<table>|</table>|{|}", "", text) text = re.sub(r"(\D)(\d|\d\S\d|\d\S\S\S\d)(\s|$| |,\D|;|<)", r"\1<sup>\2</sup>\3", text) '''text = re.sub(" | ","",text)''' text = re.sub(" - | -- | –– ", " — ", text) text = re.sub("--|––", "—", text) text = text.replace("-", "–") text = text.replace("...", "…") text = re.sub("<div>", "<br>", text, 1) text = re.sub(r"(\S\D)(c|d|g|h|l|m|n|r|t|v)ize", r"\1\2ise", text) text = text.replace("avor", "avour") text = text.replace("honor", "honour") text = text.replace("color", "colour") text = text.replace("成语 saw", "idiom") text = re.sub( " </div><div>| <br>| <br>|</div><div>|<br />|<br/>", "<br>", text) text = text.replace("<br><br><br>", "<br><br>") text = re.sub("<div>|</div>", "", text) text = text.replace(" ", " ") text = text.replace(" / ", "/") text = re.sub(r"( |^)'(\b|<)", r"\1‘\2", text) text = re.sub(r"(\b|>)'(\s|\.|,|\))", r"\1’\2", text) text = text.replace("'", "’") text = re.sub(r"( |^)\"(\b|<)", r"\1“\2", text) text = re.sub(r"(\b|>)\"(\s|\.|,|\)|$)", r"\1”\2", text) text = re.sub( "\(Jyutping\)|\(jyutping\)", "[<a href=\"http://www.cantonese.sheik.co.uk/dictionary/characters/751/\">粵</a>]", text) text = re.sub( "\(Pinyin\)|\(pinyin\)", "[<a href=\"http://www.cantonese.sheik.co.uk/dictionary/characters/331/\">國</a>]", text) text = text.replace("msg–", "msg-") text = re.sub("<br>$|^<br>| $", "", text) text = re.sub("<br>$|^<br>| $", "", text) text = re.sub(" ", " ", text) if keyboard.is_keyboard(): keyboard.play_input_click() keyboard.insert_text(text) else: # For debugging in the main app: print(f'Keyboard input: {text}')
def delete_selection(): selected_text = keyboard.get_selected_text() if selected_text: keyboard.insert_text(' ') keyboard.backspace(1) return
def typeChar(self, sender): keyboard.insert_text(sender.title)
from keyboard import insert_text # Inset structure for a function for the functions_eval script insert_text('f(x)={x}')
def run_pass_auto(): global oldimg_url global oldtweet_id global oldtweet_name global oldtweet_text global exrep global switch global new global error_script global alpha_mode,img_mode,speed try: with open('./.option.csv', 'r', encoding='utf8') as (f): reader = csv.reader(f) for i in reader: alpha_mode = i[0] img_mode = i[1] sleep_time = 0.21-float(i[2])*0.2 print("***設定読み込み完了***") print("****オート起動****") except: console.alert('Pythonistaで先に設定して下さい。') sys.exit(3) try: f = open('.tw.txt', 'r') for row in f: settingtxt = row.strip() f.close() codes = re.split('#', settingtxt) au = convert_from_hash(codes[4]) except: print('Twitter連携が無効です\n') sys.exit() if not au==str(send_code*33): print('購入者コードが無効です\n') sys.exit() userid = url2id(url) add_api(1,userid) for i in range(2,6): tt = threading.Thread(target=add_api, args=(i,userid)) tt.start() time.sleep(0.15) tt.join() #print("****連携済み"+str(len(tw_api))+"個****") start_time = time.time() stpcount = 0 if len(tw_api) == 0: print("連携不足エラー") sys.exit() old = tweet_get(tw_api[0], userid, True) while old[1] == 'err': old = tweet_get(tw_api[0], userid, True) stpcount += 1 if stpcount == 5: print("ツイート取得できませんでした。") sys.exit() oldtweet_id = old[0] oldtweet_text = old[1] oldtweet_name = old[2] oldimg_url = old[3] print(oldtweet_name + 'のパスツイ待機中•••') new = tweet_get(tw_api[0], userid) mtweet_id = new[0] mtweet_text = new[1] mtweet_name = new[2] mimg_url = new[3] elapsed_time = 0 api_switch = 0 loop_count = 0 list_get = False while switch == 0: api_switch = api_switch%len(tw_api) if list_switch: list_get = not list_get t = threading.Thread(target=t_tweet_get, args=(tw_api[api_switch], userid, list_get)) t.start() mtweet_id = new[0] mtweet_text = new[1] mtweet_name = new[2] mimg_url = new[3] if not keyboard.is_keyboard(): print(mtweet_text) flag = check_passtweet(mtweet_text) if flag: ps = pass_auto(mtweet_id, mtweet_text, mimg_url) if keyboard.is_keyboard(): keyboard.backspace(10) keyboard.insert_text(ps) keyboard.insert_text('\n') print('****取得成功****\n' + ps) sound.play_effect('arcade:Coin_2', 0.10) switch = 1 try: mememe=tw_api[0].me() nowt = str(datetime.datetime.now()) error_script = "atweet_id x"+str(error_script.count('atweet_id'))+" ltweet_id x"+str(error_script.count('ltweet_id'))+error_script error_script = re.sub("local variable 'atweet_id' referenced before assignment","",error_script) error_script = re.sub("local variable 'ltweet_id' referenced before assignment","",error_script) stext = nowt[:nowt.find(".")]+'\nリストスイッチ:'+str(list_switch)+"\nエラー文\n"+error_script+"\nuser:@"+mememe.screen_name+"\nsleeptime:"+str(sleep_time)+"\ntweet:"+oldtweet_name+"\n"+oldtweet_text+"\n処理前テキスト\n"+mtweet_text+"\n処理後テキスト\n"+ps stext = urllib.parse.quote(stext) requests.get() except Exception as e: #print(e) pass api_switch+=1 time.sleep(sleep_time)