質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

510閲覧

TwitterAPIを使った特定の文章の取得

Vowx

総合スコア0

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/03/16 11:43

編集2021/03/16 12:26

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文字区切りにしても出ました
どこが行けないのでしょうか
エラー内容
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2021/03/16 11:59

現在のエラー内容では、エラーの内容が伝わりません。 エラーメッセージは省略せずにすべてをそのまま記載していただけないでしょうか? (ドメイン名やユーザー名・パスワード等が含まれており、隠したい場合は、`ドメイン名` や `example.com` 等の例示用ドメイン名、 `ユーザー名` `パスワード`等の内容がわかる文字列に置き換えてください。)
quickquip

2021/03/16 13:36

> ネットで調べて4文字区切りにしても出ました 元々4の倍数の長さの文字でなかったなら、base64にエンコードした過程がおかしかったはずです。そこを質問に書かないといけなくて、デコードしている方のコードを載せても意味がないでしょう。
Vowx

2021/03/19 07:28

どうすればいいのでしょうか?初心者なので詳しく説明して欲しいです
quickquip

2021/03/19 07:40

CK = b'************************===' の行、あなたは右辺に書いてある値をどうやって得ましたか? ということを説明してください。 Consumer Keysの値は秘匿するべき情報なので、その部分は「developer.twitter.comからコピーしてきたConsumer Keysの値」と書いてもらえればいいでしょう。 (今気づいたんですが「developer.twitter.comからコピーしてきたConsumer Keysの値をそのまま右辺に書いたら動かない」という質問だった可能性が高そう)
Vowx

2021/03/20 15:55

>今気づいたんですが「developer.twitter.comからコピーしてきたConsumer Keysの値をそのまま右辺に書いたら動かない」という質問だった可能性が高そう はいそうですお手数をおかけし申し訳ないです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問