mirror of
https://gitea.phreedom.club/localhost_frssoft/FMN_bot.git
synced 2024-11-25 18:31:28 +00:00
FMN picture uploading
This commit is contained in:
parent
6033095e89
commit
099285c147
BIN
src/FMN.png
Normal file
BIN
src/FMN.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 788 KiB |
|
@ -35,7 +35,7 @@ def get_status(status_id):
|
||||||
return r.json()
|
return r.json()
|
||||||
|
|
||||||
|
|
||||||
def post_status(text, reply_to_status_id=None, poll_options=None, poll_expires=345600):
|
def post_status(text, reply_to_status_id=None, poll_options=None, poll_expires=345600, attachments=None):
|
||||||
poll = None
|
poll = None
|
||||||
if poll_options is not None:
|
if poll_options is not None:
|
||||||
poll = {
|
poll = {
|
||||||
|
@ -43,14 +43,28 @@ def post_status(text, reply_to_status_id=None, poll_options=None, poll_expires=3
|
||||||
"expires_in": poll_expires,
|
"expires_in": poll_expires,
|
||||||
"multiple": True
|
"multiple": True
|
||||||
}
|
}
|
||||||
print(poll_options)
|
|
||||||
params = {
|
params = {
|
||||||
"status": text,
|
"status": text,
|
||||||
"in_reply_to_id": reply_to_status_id,
|
"in_reply_to_id": reply_to_status_id,
|
||||||
"visibility": "unlisted",
|
"visibility": "unlisted",
|
||||||
"content_type": "text/plain",
|
"content_type": "text/plain",
|
||||||
|
"language": "ru",
|
||||||
"poll": poll
|
"poll": poll
|
||||||
}
|
}
|
||||||
|
if attachments:
|
||||||
|
params['media_ids'] = attachments
|
||||||
r = requests.post(instance_point + "/statuses", json=params, headers=headers)
|
r = requests.post(instance_point + "/statuses", json=params, headers=headers)
|
||||||
return r.json()
|
return r.json()
|
||||||
|
|
||||||
|
|
||||||
|
def upload_attachment(file_path):
|
||||||
|
file = {
|
||||||
|
"file": open(file_path, mode='rb')
|
||||||
|
}
|
||||||
|
params = {
|
||||||
|
"description": "Fediverse Movie Night\nВоскресенье, 21:00\nLIVE ON XXIV Production",
|
||||||
|
}
|
||||||
|
r = requests.post(instance_point + "/media", params, files=file, headers=headers)
|
||||||
|
return r.json()['id']
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from src.fedi_api import get_status, post_status
|
from src.fedi_api import get_status, post_status, upload_attachment
|
||||||
from src.fmn_states_db import add_state, get_state, clear_all_states
|
from src.fmn_states_db import add_state, get_state, clear_all_states
|
||||||
from src.fmn_database import get_movies_for_poll, write_votes, read_votes, mark_as_watched_movie, get_already_watched, rewrite_db, reset_poll
|
from src.fmn_database import get_movies_for_poll, write_votes, read_votes, mark_as_watched_movie, get_already_watched, rewrite_db, reset_poll
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
|
@ -27,11 +27,11 @@ def create_poll_movies(text=text_create_poll, poll_expires=345600):
|
||||||
if orig_name is None:
|
if orig_name is None:
|
||||||
poll_option_string = f"{ru_name}, {year} ({acct})"
|
poll_option_string = f"{ru_name}, {year} ({acct})"
|
||||||
formated_poll_options.append(poll_option_string)
|
formated_poll_options.append(poll_option_string)
|
||||||
|
poll_status_id = post_status(text, None, formated_poll_options,
|
||||||
poll_status_id = post_status(text, None, formated_poll_options, poll_expires=poll_expires)['id']
|
poll_expires=poll_expires, attachments=[upload_attachment('src/FMN.png')])
|
||||||
logger.info('Голосовалка создана')
|
logger.info('Голосовалка создана')
|
||||||
add_state('poll_expires_at', int(time.time()) + poll_expires)
|
add_state('poll_expires_at', int(time.time()) + poll_expires)
|
||||||
add_state('poll_status_id', poll_status_id)
|
add_state('poll_status_id', poll_status_id['id'])
|
||||||
return poll_status_id
|
return poll_status_id
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,5 +75,5 @@ def create_tie_breaker(count_tie=1):
|
||||||
poll_expires = 8*60*60
|
poll_expires = 8*60*60
|
||||||
else:
|
else:
|
||||||
poll_expires = 4*60*60
|
poll_expires = 4*60*60
|
||||||
tie_poll = create_poll_movies("[Чисто проверить как отрабатывают тай брекеры и в целом препарирование опросов] TIE BREAKER!!!", poll_expires)
|
tie_poll = create_poll_movies("TIE BREAKER!!!\n\nВыбираем из победителей!", poll_expires)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from src.fedi_api import get_notifications, mark_as_read_notification, post_status
|
from src.fedi_api import get_notifications, mark_as_read_notification, post_status, upload_attachment
|
||||||
from src.fmn_states_db import add_state
|
from src.fmn_states_db import add_state
|
||||||
from config import main_admin_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting
|
from config import main_admin_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ def get_control_mention(acct_admin_bot=str):
|
||||||
movies_accept_time = stop_thread_scan.strftime('%H:%M %d.%m.%Y MSK')
|
movies_accept_time = stop_thread_scan.strftime('%H:%M %d.%m.%Y MSK')
|
||||||
stop_thread_scan = time.mktime(time.struct_time(stop_thread_scan.timetuple()))
|
stop_thread_scan = time.mktime(time.struct_time(stop_thread_scan.timetuple()))
|
||||||
|
|
||||||
post_status(start_collect_movies_text(movies_accept_time, next_movie_watching), st_id)
|
post_status(start_collect_movies_text(movies_accept_time, next_movie_watching), st_id, attachments=[upload_attachment('src/FMN.png')])
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
mark_as_read_notification(i['id'])
|
mark_as_read_notification(i['id'])
|
||||||
add_state('stop_thread_scan', int(stop_thread_scan))
|
add_state('stop_thread_scan', int(stop_thread_scan))
|
||||||
|
|
Loading…
Reference in a new issue