Compare commits

..

No commits in common. "573f36bf57e3d95d3e36e6050fba5ff7c989f112" and "319eb84c5abc20827802652f2391ee0a890a3ca9" have entirely different histories.

2 changed files with 39 additions and 42 deletions

View File

@ -45,14 +45,11 @@ def yaml_format(obj, indent=0):
if not formatted.strip(): if not formatted.strip():
continue continue
result.append(' ' * (indent if has_multiple_items else 1)) result.append(' ' * (indent if has_multiple_items else 1))
result.append(f'{k}:') result.append(f'{k}: {formatted}')
if not formatted[0].isspace():
result.append(' ')
result.append(f'{formatted}')
result.append('\n') result.append('\n')
result.pop() result.pop()
if has_multiple_items:
indent -= 2 indent -= 2
result.append(' ' * indent)
elif isinstance(obj, str): elif isinstance(obj, str):
# truncate long strings and display elipsis # truncate long strings and display elipsis
result = repr(obj[:STR_LEN_MAX]) result = repr(obj[:STR_LEN_MAX])
@ -78,6 +75,7 @@ def yaml_format(obj, indent=0):
result.append('\n') result.append('\n')
result.pop() result.pop()
indent -= 2 indent -= 2
result.append(' ' * indent)
else: else:
return repr(obj) return repr(obj)

View File

@ -1,11 +1,9 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
import asyncio
from telethon import events, utils from telethon import events, utils
from telethon.tl import types from telethon.tl import types
loop = asyncio.get_event_loop()
TYPE_TEXT = 0 TYPE_TEXT = 0
TYPE_PHOTO = 1 TYPE_PHOTO = 1
@ -18,11 +16,10 @@ snips = storage.snips or {}
@borg.on(events.NewMessage(pattern=r'\.snip (\S+)', outgoing=True)) @borg.on(events.NewMessage(pattern=r'\.snip (\S+)', outgoing=True))
async def on_snip(event): async def on_snip(event):
loop.create_task(event.delete())
name = event.pattern_match.group(1) name = event.pattern_match.group(1)
if name not in snips: if name not in snips:
return await on_snip_save(event)
else:
snip = snips[name] snip = snips[name]
if snip['type'] == TYPE_PHOTO: if snip['type'] == TYPE_PHOTO:
media = types.InputPhoto(snip['id'], snip['hash'], file_reference=b'') media = types.InputPhoto(snip['id'], snip['hash'], file_reference=b'')
@ -35,15 +32,14 @@ async def on_snip(event):
file=media, file=media,
reply_to=event.message.reply_to_msg_id) reply_to=event.message.reply_to_msg_id)
await event.delete()
@borg.on(events.NewMessage(pattern=r'\.snips (\S+)', outgoing=True)) @borg.on(events.NewMessage(pattern=r'\.snips (\S+)', outgoing=True))
async def on_snip_save(event): async def on_snip_save(event):
loop.create_task(event.delete())
name = event.pattern_match.group(1) name = event.pattern_match.group(1)
msg = await event.get_reply_message() msg = await event.get_reply_message()
if not msg: if msg:
return
snips.pop(name, None) snips.pop(name, None)
snip = {'type': TYPE_TEXT, 'text': msg.message or ''} snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
if msg.media: if msg.media:
@ -61,24 +57,27 @@ async def on_snip_save(event):
snips[name] = snip snips[name] = snip
storage.snips = snips storage.snips = snips
await event.delete()
@borg.on(events.NewMessage(pattern=r'\.snipl', outgoing=True)) @borg.on(events.NewMessage(pattern=r'\.snipl', outgoing=True))
async def on_snip_list(event): async def on_snip_list(event):
loop.create_task(event.delete())
await event.respond('available snips: ' + ', '.join(snips.keys())) await event.respond('available snips: ' + ', '.join(snips.keys()))
await event.delete()
@borg.on(events.NewMessage(pattern=r'\.snipd (\S+)', outgoing=True)) @borg.on(events.NewMessage(pattern=r'\.snipd (\S+)', outgoing=True))
async def on_snip_delete(event): async def on_snip_delete(event):
loop.create_task(event.delete())
snips.pop(event.pattern_match.group(1), None) snips.pop(event.pattern_match.group(1), None)
storage.snips = snips storage.snips = snips
await event.delete()
@borg.on(events.NewMessage(pattern=r'\.snipr (\S+)\s+(\S+)', outgoing=True)) @borg.on(events.NewMessage(pattern=r'\.snipr (\S+)\s+(\S+)', outgoing=True))
async def on_snip_rename(event): async def on_snip_rename(event):
loop.create_task(event.delete())
snip = snips.pop(event.pattern_match.group(1), None) snip = snips.pop(event.pattern_match.group(1), None)
if snip: if snip:
snips[event.pattern_match.group(2)] = snip snips[event.pattern_match.group(2)] = snip
storage.snips = snips storage.snips = snips
await event.delete()