Skip to content

Commit de8f784

Browse files
committed
Use better checks for local and external files
1 parent 4a8e6fb commit de8f784

File tree

12 files changed

+46
-37
lines changed

12 files changed

+46
-37
lines changed

pyrogram/client/methods/chats/set_chat_photo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def set_chat_photo(
6363
"""
6464
peer = self.resolve_peer(chat_id)
6565

66-
if os.path.exists(photo):
66+
if os.path.isfile(photo):
6767
photo = types.InputChatUploadedPhoto(file=self.save_file(photo))
6868
else:
6969
photo = utils.get_input_media_from_file_id(photo, file_ref, 2)

pyrogram/client/methods/messages/edit_inline_media.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
# You should have received a copy of the GNU Lesser General Public License
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

19+
import re
20+
1921
import pyrogram
2022
from pyrogram.api import functions, types
2123
from pyrogram.client.ext import BaseClient, utils
@@ -72,35 +74,35 @@ def edit_inline_media(
7274
parse_mode = media.parse_mode
7375

7476
if isinstance(media, InputMediaPhoto):
75-
if media.media.startswith("http"):
77+
if re.match("^https?://", media.media):
7678
media = types.InputMediaPhotoExternal(
7779
url=media.media
7880
)
7981
else:
8082
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 2)
8183
elif isinstance(media, InputMediaVideo):
82-
if media.media.startswith("http"):
84+
if re.match("^https?://", media.media):
8385
media = types.InputMediaDocumentExternal(
8486
url=media.media
8587
)
8688
else:
8789
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 4)
8890
elif isinstance(media, InputMediaAudio):
89-
if media.media.startswith("http"):
91+
if re.match("^https?://", media.media):
9092
media = types.InputMediaDocumentExternal(
9193
url=media.media
9294
)
9395
else:
9496
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 9)
9597
elif isinstance(media, InputMediaAnimation):
96-
if media.media.startswith("http"):
98+
if re.match("^https?://", media.media):
9799
media = types.InputMediaDocumentExternal(
98100
url=media.media
99101
)
100102
else:
101103
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 10)
102104
elif isinstance(media, InputMediaDocument):
103-
if media.media.startswith("http"):
105+
if re.match("^https?://", media.media):
104106
media = types.InputMediaDocumentExternal(
105107
url=media.media
106108
)

pyrogram/client/methods/messages/edit_message_media.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import os
20+
import re
2021
from typing import Union
2122

2223
import pyrogram
@@ -78,7 +79,7 @@ def edit_message_media(
7879
parse_mode = media.parse_mode
7980

8081
if isinstance(media, InputMediaPhoto):
81-
if os.path.exists(media.media):
82+
if os.path.isfile(media.media):
8283
media = self.send(
8384
functions.messages.UploadMedia(
8485
peer=self.resolve_peer(chat_id),
@@ -95,14 +96,14 @@ def edit_message_media(
9596
file_reference=media.photo.file_reference
9697
)
9798
)
98-
elif media.media.startswith("http"):
99+
elif re.match("^https?://", media.media):
99100
media = types.InputMediaPhotoExternal(
100101
url=media.media
101102
)
102103
else:
103104
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 2)
104105
elif isinstance(media, InputMediaVideo):
105-
if os.path.exists(media.media):
106+
if os.path.isfile(media.media):
106107
media = self.send(
107108
functions.messages.UploadMedia(
108109
peer=self.resolve_peer(chat_id),
@@ -132,14 +133,14 @@ def edit_message_media(
132133
file_reference=media.document.file_reference
133134
)
134135
)
135-
elif media.media.startswith("http"):
136+
elif re.match("^https?://", media.media):
136137
media = types.InputMediaDocumentExternal(
137138
url=media.media
138139
)
139140
else:
140141
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 4)
141142
elif isinstance(media, InputMediaAudio):
142-
if os.path.exists(media.media):
143+
if os.path.isfile(media.media):
143144
media = self.send(
144145
functions.messages.UploadMedia(
145146
peer=self.resolve_peer(chat_id),
@@ -168,14 +169,14 @@ def edit_message_media(
168169
file_reference=media.document.file_reference
169170
)
170171
)
171-
elif media.media.startswith("http"):
172+
elif re.match("^https?://", media.media):
172173
media = types.InputMediaDocumentExternal(
173174
url=media.media
174175
)
175176
else:
176177
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 9)
177178
elif isinstance(media, InputMediaAnimation):
178-
if os.path.exists(media.media):
179+
if os.path.isfile(media.media):
179180
media = self.send(
180181
functions.messages.UploadMedia(
181182
peer=self.resolve_peer(chat_id),
@@ -206,14 +207,14 @@ def edit_message_media(
206207
file_reference=media.document.file_reference
207208
)
208209
)
209-
elif media.media.startswith("http"):
210+
elif re.match("^https?://", media.media):
210211
media = types.InputMediaDocumentExternal(
211212
url=media.media
212213
)
213214
else:
214215
media = utils.get_input_media_from_file_id(media.media, media.file_ref, 10)
215216
elif isinstance(media, InputMediaDocument):
216-
if os.path.exists(media.media):
217+
if os.path.isfile(media.media):
217218
media = self.send(
218219
functions.messages.UploadMedia(
219220
peer=self.resolve_peer(chat_id),
@@ -237,7 +238,7 @@ def edit_message_media(
237238
file_reference=media.document.file_reference
238239
)
239240
)
240-
elif media.media.startswith("http"):
241+
elif re.match("^https?://", media.media):
241242
media = types.InputMediaDocumentExternal(
242243
url=media.media
243244
)

pyrogram/client/methods/messages/send_animation.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import os
20+
import re
2021
from typing import Union
2122

2223
import pyrogram
@@ -163,7 +164,7 @@ def progress(current, total):
163164
file = None
164165

165166
try:
166-
if os.path.exists(animation):
167+
if os.path.isfile(animation):
167168
thumb = None if thumb is None else self.save_file(thumb)
168169
file = self.save_file(animation, progress=progress, progress_args=progress_args)
169170
media = types.InputMediaUploadedDocument(
@@ -181,7 +182,7 @@ def progress(current, total):
181182
types.DocumentAttributeAnimated()
182183
]
183184
)
184-
elif animation.startswith("http"):
185+
elif re.match("^https?://", animation):
185186
media = types.InputMediaDocumentExternal(
186187
url=animation
187188
)

pyrogram/client/methods/messages/send_audio.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import os
20+
import re
2021
from typing import Union
2122

2223
import pyrogram
@@ -163,7 +164,7 @@ def progress(current, total):
163164
file = None
164165

165166
try:
166-
if os.path.exists(audio):
167+
if os.path.isfile(audio):
167168
thumb = None if thumb is None else self.save_file(thumb)
168169
file = self.save_file(audio, progress=progress, progress_args=progress_args)
169170
media = types.InputMediaUploadedDocument(
@@ -179,7 +180,7 @@ def progress(current, total):
179180
types.DocumentAttributeFilename(file_name=file_name or os.path.basename(audio))
180181
]
181182
)
182-
elif audio.startswith("http"):
183+
elif re.match("^https?://", audio):
183184
media = types.InputMediaDocumentExternal(
184185
url=audio
185186
)

pyrogram/client/methods/messages/send_document.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import os
20+
import re
2021
from typing import Union
2122

2223
import pyrogram
@@ -143,7 +144,7 @@ def progress(current, total):
143144
file = None
144145

145146
try:
146-
if os.path.exists(document):
147+
if os.path.isfile(document):
147148
thumb = None if thumb is None else self.save_file(thumb)
148149
file = self.save_file(document, progress=progress, progress_args=progress_args)
149150
media = types.InputMediaUploadedDocument(
@@ -154,7 +155,7 @@ def progress(current, total):
154155
types.DocumentAttributeFilename(file_name=file_name or os.path.basename(document))
155156
]
156157
)
157-
elif document.startswith("http"):
158+
elif re.match("^https?://", document):
158159
media = types.InputMediaDocumentExternal(
159160
url=document
160161
)

pyrogram/client/methods/messages/send_media_group.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@
1818

1919
import logging
2020
import os
21-
import time
21+
import re
2222
from typing import Union, List
2323

2424
import pyrogram
2525
from pyrogram.api import functions, types
2626
from pyrogram.client.ext import BaseClient, utils
27-
from pyrogram.errors import FloodWait
2827

2928
log = logging.getLogger(__name__)
3029

@@ -77,7 +76,7 @@ def send_media_group(
7776

7877
for i in media:
7978
if isinstance(i, pyrogram.InputMediaPhoto):
80-
if os.path.exists(i.media):
79+
if os.path.isfile(i.media):
8180
media = self.send(
8281
functions.messages.UploadMedia(
8382
peer=self.resolve_peer(chat_id),
@@ -94,7 +93,7 @@ def send_media_group(
9493
file_reference=media.photo.file_reference
9594
)
9695
)
97-
elif i.media.startswith("http"):
96+
elif re.match("^https?://", i.media):
9897
media = self.send(
9998
functions.messages.UploadMedia(
10099
peer=self.resolve_peer(chat_id),
@@ -114,7 +113,7 @@ def send_media_group(
114113
else:
115114
media = utils.get_input_media_from_file_id(i.media, i.file_ref, 2)
116115
elif isinstance(i, pyrogram.InputMediaVideo):
117-
if os.path.exists(i.media):
116+
if os.path.isfile(i.media):
118117
media = self.send(
119118
functions.messages.UploadMedia(
120119
peer=self.resolve_peer(chat_id),
@@ -142,7 +141,7 @@ def send_media_group(
142141
file_reference=media.document.file_reference
143142
)
144143
)
145-
elif i.media.startswith("http"):
144+
elif re.match("^https?://", i.media):
146145
media = self.send(
147146
functions.messages.UploadMedia(
148147
peer=self.resolve_peer(chat_id),

pyrogram/client/methods/messages/send_photo.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import os
20+
import re
2021
from typing import Union
2122

2223
import pyrogram
@@ -137,13 +138,13 @@ def send_photo(
137138
file = None
138139

139140
try:
140-
if os.path.exists(photo):
141+
if os.path.isfile(photo):
141142
file = self.save_file(photo, progress=progress, progress_args=progress_args)
142143
media = types.InputMediaUploadedPhoto(
143144
file=file,
144145
ttl_seconds=ttl_seconds
145146
)
146-
elif photo.startswith("http"):
147+
elif re.match("^https?://", photo):
147148
media = types.InputMediaPhotoExternal(
148149
url=photo,
149150
ttl_seconds=ttl_seconds

pyrogram/client/methods/messages/send_sticker.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import os
20+
import re
2021
from typing import Union
2122

2223
import pyrogram
@@ -113,7 +114,7 @@ def send_sticker(
113114
file = None
114115

115116
try:
116-
if os.path.exists(sticker):
117+
if os.path.isfile(sticker):
117118
file = self.save_file(sticker, progress=progress, progress_args=progress_args)
118119
media = types.InputMediaUploadedDocument(
119120
mime_type=self.guess_mime_type(sticker) or "image/webp",
@@ -122,7 +123,7 @@ def send_sticker(
122123
types.DocumentAttributeFilename(file_name=os.path.basename(sticker))
123124
]
124125
)
125-
elif sticker.startswith("http"):
126+
elif re.match("^https?://", sticker):
126127
media = types.InputMediaDocumentExternal(
127128
url=sticker
128129
)

pyrogram/client/methods/messages/send_video.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import os
20+
import re
2021
from typing import Union
2122

2223
import pyrogram
@@ -160,7 +161,7 @@ def progress(current, total):
160161
file = None
161162

162163
try:
163-
if os.path.exists(video):
164+
if os.path.isfile(video):
164165
thumb = None if thumb is None else self.save_file(thumb)
165166
file = self.save_file(video, progress=progress, progress_args=progress_args)
166167
media = types.InputMediaUploadedDocument(
@@ -177,7 +178,7 @@ def progress(current, total):
177178
types.DocumentAttributeFilename(file_name=file_name or os.path.basename(video))
178179
]
179180
)
180-
elif video.startswith("http"):
181+
elif re.match("^https?://", video):
181182
media = types.InputMediaDocumentExternal(
182183
url=video
183184
)

0 commit comments

Comments
 (0)