python
1 2import notification 3import clipboard 4import keyboard 5import datetime 6import calendar 7import tweepy 8import base64 9import json 10import time 11import glob 12import os 13import sys 14import re 15import random 16import console 17import sound 18 19""" 20 21 貼り付け後タスクを切りTwitterのリンクをコピーします。 22 コピー後Python起動⇨右上の▶︎6桁の数字が出るが 23 無視でok 設定 24 25 26 27""" 28 29Twitter_ID = "記入なしでok" 30 31"" 32 33""" 34 35DMでもらったコード="" 36 37 ---使用設定部分--- 38 39 パスツイ 21:30 40 ルーム番号 567 41 42 の場合 43 ↓↓↓↓↓↓↓↓ 44 45 pass_tweet_time = "30" ← 21:00 の場合は"00" ※分だけを記入します。 46 room_id = "567" 47 48----- このように下を書き換えます。------ 49 50""" 51 52pass_tweet_time = "59" 53room_id = "140" 54 55 56""" 57 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 58 ⚠️以下書き換えると動作しなくなります 59 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 60""" 61 62flag = 0 63flag_S = 0 64password = "" 65 66CK = b'************************===' 67CKS = b'****************************************************=' 68AT = "******************-*******************************" 69ATS = "************************************" 70 71basenumber = "0123456789" 72 73font_item = ["⓪①②③④⑤⑥⑦⑧⑨", 74 "⓿❶❷❸❹❺❻❼❽❾", 75 "0123456789", 76 "????????????????????????????????????????",] 77 78itemlist1 = ["@[a-zA-Z0-9_]+", 79 "[0-9]{1,2}:[0-5][0-9]", 80 "[0-9]{1,2}時[0-59]分", 81 "([0-9]|[0-2][0-9])時", 82 "[0-5][0-9]分", 83 "[1-9]{1,2}/[0-9]{1,2}", 84 "[0-9]{1,2}月([1-3][0-9]|[0-9])日",] 85 86 87itemlist2 = [" "," ",] 88 89message = { 90 "no_update":"パスツイ取得中", 91 "code_notification":"この数字をDMで伝えてください:", 92 "copy_error":"Twitterリンクのコピー又はフルアクセスの許可をしてください", 93 "pass_notfound":"パスワードが取得できませんでした", 94 "waiting_passtweet":"からのパスツイ待機中...", 95 "stop":"動作可能時間内にパスツイが見つかりませんでした。", 96 "success":b'SUToqo3oqLzmiJDlip8=', 97 "fail":b'SUToqo3oqLzlpLHmlZc=', 98 "repush":"パスツイ予定時間の数秒前にもう一度ボタンを押して下さい", 99} 100 101 102 103 104 105 106 107""" 108 関数 109""" 110 111 112 113 114def login(CK,CKS,AT,ATS): 115 CK = base64.b64decode(CK.decode()) 116 CKS = base64.b64decode(CKS.decode()) 117 auth = tweepy.OAuthHandler(str(CK).split("'")[1],str(CKS).split("'")[1]) 118 auth.set_access_token(AT,ATS) 119 API = tweepy.API(auth) 120 return API 121 122def exit(): 123 sys.exit() 124 125def get_username(): 126 user_name = clipboard.get() 127 if("https" in user_name): 128 user_name = user_name.split("/") 129 user_name = user_name[3].split("?") 130 user_name = user_name[0] 131 return user_name 132 else: 133 print(message["copy_error"]) 134 sys.exit() 135 136def ACencrtrpt(a): 137 c = str(a) 138 c = base64.b64encode(c.encode()) 139 return c 140 141def Test(c,d): 142 if c == d: 143 return True 144 else: 145 key = glob.glob("*.pwd") 146 key = key[0].split(".")[0] 147 print(message["code_notification"]+key) 148 sys.exit() 149 150def check(): 151 file = glob.glob("*.pwd") 152 i = 0 153 if not file: 154 key = int(random.uniform(1,99))*int(random.uniform(99,999))*int(random.uniform(1,9)) 155 key = str(key) 156 with open(key+".pwd" , mode="w") as f: 157 f.write("") 158 notification.schedule(message["code_notification"]+key) 159 print(message["code_notification"]+key) 160 sys.exit() 161 else: 162 code = file[0].split(".")[0] 163 return code,i 164 165def tweet_filter(Tweettext): 166 for i in range(10): 167 if(font_item[0][i] in Tweettext): 168 Tweettext = Tweettext.replace(font_item[0][i],basenumber[i]) 169 for j in range(10): 170 if(font_item[1][j] in Tweettext): 171 Tweettext = Tweettext.replace(font_item[1][j],basenumber[j]) 172 for k in range(10): 173 if(font_item[2][k] in Tweettext): 174 Tweettext = Tweettext.replace(font_item[2][k],basenumber[k]) 175 for l in range(10): 176 if(font_item[3][l] in Tweettext): 177 Tweettext = Tweettext.replace(font_item[3][l],basenumber[l]) 178 return Tweettext 179 180def tweet_trim(tweet): 181 tweet = tweet_filter(tweet) 182 for i in itemlist1: 183 tweet = re.sub(i,"",tweet) 184 for j in itemlist2: 185 tweet = tweet.replace(j,"") 186 tweet = re.findall(r"\d+",tweet) 187 return tweet 188 189def get_time_now(): 190 now_time = datetime.datetime.now() 191 now_time = str(now_time).split(" ")[1] 192 now_time = now_time.split(":") 193 now_time_minute = now_time[1] 194 now_time_seconds = now_time[2].split(".")[0] 195 return now_time_minute,now_time_seconds 196 197 198API = login(CK,CKS,AT,ATS) 199 200Check , Check2 = check() 201 202 203order = API.user_timeline("auto_test_",count=1) 204 205for i in order: 206 order = i.text 207 208if("del" in order): 209 order = order.split(",")[1] 210 order = order+".pwd" 211 if(os.path.isfile(order)): 212 os.remove(order) 213 sys.exit() 214elif("mes" in order): 215 order_ = order.split(",")[1] 216 order_mes = order.split(",")[2] 217 order_ = order_+".pwd" 218 if(os.path.isfile(order_)): 219 print(order_mes) 220 sys.exit() 221 222if not Check2 == 0: 223 exit() 224 225num = glob.glob("*.pwd") 226num = num[0].split(".")[0] 227print(num) 228user_name = get_username() 229 230 231j,k = get_time_now() 232if(pass_tweet_time == "00"): 233 times = "59" 234else: 235 times = str(int(pass_tweet_time)-1) 236 237if(j == pass_tweet_time): 238 s = 0 239elif(j == times and int(k) < 40): 240 print(message["repush"]) 241 sys.exit() 242elif not j == times and not j == pass_tweet_time: 243 print(message["repush"]) 244 sys.exit() 245 246print("@"+user_name+message["waiting_passtweet"]) 247 248if(pass_tweet_time == "00"): 249 passTb = "59" 250else: 251 passTb = str(int(pass_tweet_time)-1) 252 253while True: 254 now_time_minute , now_time_seconds = get_time_now() 255 if(now_time_minute == passTb and now_time_seconds == "58"): 256 break 257 elif(now_time_minute == passTb and now_time_seconds == "59"): 258 break 259 elif(now_time_minute == pass_tweet_time): 260 c , d = get_time_now() 261 flag_S = 0 262 break 263 time.sleep(0.01) 264 265while True: 266 267 a , b = get_time_now() 268 269 if(flag_S == 0): 270 if(b == "12"): 271 print(message["stop"]) 272 sys.exit() 273 else: 274 if(int(d) >= 50): 275 if(b == "59"): 276 print(message["stop"]) 277 sys.exit() 278 else: 279 if(int(b) == int(d)+12): 280 print(message["stop"]) 281 sys.exit() 282 283 tweet = API.user_timeline(user_name,count = 1) 284 for i in tweet: 285 tweet = i.text 286 tweet_time = i.created_at 287 288 tweet_time = re.findall(r"\d+",str(tweet_time)) 289 tweet_time_minute = tweet_time[4] 290 tweet_time_second = tweet_time[5] 291 292 if(pass_tweet_time == "00"): 293 pass_tweet_time_ = "59" 294 else: 295 pass_tweet_time_ = str(int(pass_tweet_time)-1) 296 if(len(pass_tweet_time_) == 1): 297 pass_tweet_time_ = "0" + pass_tweet_time_ 298 for i in range(57,60): 299 if(pass_tweet_time_ == tweet_time_minute and str(i) == tweet_time_second): 300 flag = 1 301 if(pass_tweet_time == tweet_time_minute): 302 flag = 1 303 304 if(flag == 1): 305 break 306 else: 307 console.clear() 308 print(message["no_update"]+" ["+str(datetime.datetime.now()).split(" ")[1]+"]") 309 time.sleep(0.02) 310 311tweet = tweet_trim(tweet) 312 313if(room_id in tweet): 314 room_id_index = tweet.index(room_id) 315 if(room_id_index == 0): 316 password = tweet[1] 317 elif(room_id_index == 1): 318 password = tweet[0] 319 elif(len(tweet) >= 1): 320 password = tweet[0] 321else: 322 password = tweet[0] 323 324sound.play_effect(name="arcade:Coin_3",volume=0.025) 325keyboard.insert_text(password) 326keyboard.insert_text("\n") 327notification.schedule(password) 328print(password) 329sys.exit()
Incorrect paddingと言うエラーが出ました
ネットで調べて4文字区切りにしても出ました
どこが行けないのでしょうか
エラー内容
現在のエラー内容では、エラーの内容が伝わりません。
エラーメッセージは省略せずにすべてをそのまま記載していただけないでしょうか? (ドメイン名やユーザー名・パスワード等が含まれており、隠したい場合は、`ドメイン名` や `example.com` 等の例示用ドメイン名、 `ユーザー名` `パスワード`等の内容がわかる文字列に置き換えてください。)
> ネットで調べて4文字区切りにしても出ました
元々4の倍数の長さの文字でなかったなら、base64にエンコードした過程がおかしかったはずです。そこを質問に書かないといけなくて、デコードしている方のコードを載せても意味がないでしょう。
どうすればいいのでしょうか?初心者なので詳しく説明して欲しいです
CK = b'************************==='
の行、あなたは右辺に書いてある値をどうやって得ましたか? ということを説明してください。
Consumer Keysの値は秘匿するべき情報なので、その部分は「developer.twitter.comからコピーしてきたConsumer Keysの値」と書いてもらえればいいでしょう。
(今気づいたんですが「developer.twitter.comからコピーしてきたConsumer Keysの値をそのまま右辺に書いたら動かない」という質問だった可能性が高そう)
>今気づいたんですが「developer.twitter.comからコピーしてきたConsumer Keysの値をそのまま右辺に書いたら動かない」という質問だった可能性が高そう
はいそうですお手数をおかけし申し訳ないです
あなたの回答
tips
プレビュー