Compare commits

...

4 Commits
v0.1.4 ... main

Author SHA1 Message Date
jonny dcfb84238a oop 2023-11-29 11:59:14 +00:00
jonny 0840208900 at least a little docs 2023-11-29 11:57:57 +00:00
sneakers-the-rat b4fd7c2080 more type checking imports 2023-10-16 16:41:23 -07:00
sneakers-the-rat ae4d610754 dont import discord message for type checking 2023-10-16 16:37:33 -07:00
3 changed files with 39 additions and 8 deletions

View File

@ -1,8 +1,27 @@
# wiki-postbot
Bot to add tweets using an extended wikilink syntax to the wiki
Bot to crosspost from chat clients and microblogs using an extended wikilink syntax to the (media)wiki.
eg. say `Hey what up i'm [[wikilinkin]]` in slack, and embed that message with a backlink on the `wikilinkin` page.
Sorry for the extremely crappy docs and code structure y'all, this was supposed to be an internal tool for like 5 different projects, so i have done nothing yet to make it readable or reusable. the best way to understand this package for now would probably be to work backwards from the script entrypoints (see https://git.jon-e.net/jonny/wiki-postbot/src/branch/main/pyproject.toml#L11 ).
> this is not a model directed project, since it hasn't been intended to outlive the immediate circumstances each time, but it ends up doing so anyway.
>
> discord entrypoint is this: https://git.jon-e.net/jonny/wiki-postbot/src/branch/main/wiki_postbot/clients/discord.py
>
> main thing it does is transcribe messages onto wiki pages, this is the parser for those:
> https://git.jon-e.net/jonny/wiki-postbot/src/branch/main/wiki_postbot/patterns/wikilink.py
>
> it was designed to have a little microsyntax for selecting n-back post ranges and handling semantic wikilinks contextually but i haven't been able to implement that on the client side yet.
>
> wiki interface is here: https://git.jon-e.net/jonny/wiki-postbot/src/branch/main/wiki_postbot/interfaces/mediawiki.py
>
> specifically incoming from discord here: https://git.jon-e.net/jonny/wiki-postbot/src/commit/b4fd7c2080f2c3f2af6f215705083368ceef18d8/wiki_postbot/interfaces/mediawiki.py#L164
>
> so ideally that would, yno, have a data model that it juices things into, so i'm going to work those scraps into an n-to-m bridger that i was experimenting with a lil service version of here: https://git.jon-e.net/jonny/chatbridge
> - https://neuromatch.social/@jonny/111476292383009212
Starting with twitter, but then will add masto
# Mediawiki

View File

@ -13,11 +13,19 @@ from wiki_postbot.actions import Result
from wiki_postbot.logger import init_logger
from datetime import datetime
import requests
from discord.message import Message, Embed
import pdb
if TYPE_CHECKING:
from wiki_postbot.clients.slack import SlackMessage
try:
from wiki_postbot.clients.slack import SlackMessage
except ImportError:
SlackMessage = None
try:
from discord.message import Message, Embed
except ImportError:
Message = None
Embed = None
# creds = Mediawiki_Creds.from_json('mediawiki_creds.json')
@ -153,7 +161,7 @@ class Wiki:
)
return result
def handle_discord(self, msg:Message) -> Result:
def handle_discord(self, msg:'Message') -> Result:
"""
Not being precious about this, just implementing
and will worry about generality later!

View File

@ -4,16 +4,20 @@ Templates for representing different kinds of messages on mediawiki
from typing import TYPE_CHECKING
from wiki_postbot.formats.wiki import WikiPage
from abc import abstractmethod
from discord.message import Message
import warnings
if TYPE_CHECKING:
from wiki_postbot.clients.slack import SlackMessage
try:
from discord.message import Message
except ImportError:
Message = None
class WikiTemplate(WikiPage):
@abstractmethod
def format_discord(self, msg:Message) -> str:
def format_discord(self, msg:'Message') -> str:
"""
Format a discord message into a template string
"""
@ -21,7 +25,7 @@ class WikiTemplate(WikiPage):
class TemplateMessage(WikiTemplate):
@classmethod
def format_discord(self, msg:Message) -> str:
def format_discord(self, msg:'Message') -> str:
# try/catch the avatar URL
try:
avatar = msg.author.avatar.url