1
0
Fork 0

Merge remote-tracking branch 'origin/master' into log-websocket-connection

This commit is contained in:
Vftdan 2024-06-11 19:42:10 +02:00
commit fac1e46859
22 changed files with 36 additions and 4 deletions

View File

@ -32,6 +32,10 @@ user = auto
# address bar while you have that list open) # address bar while you have that list open)
list = 1 list = 1
# Allow replies to be boosted as well
# By default replies will be ignores unless it's a reply to your post
# replies_to_other_accounts_should_not_be_skipped = yes
# Should we automatically reconnect to the streaming socket? # Should we automatically reconnect to the streaming socket?
# That option exists because it's not really a big deal when crossposter runs # That option exists because it's not really a big deal when crossposter runs
# as a service and restarts automatically by the service manager. # as a service and restarts automatically by the service manager.

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from asyncio import gather from asyncio import gather
from configparser import ConfigParser from configparser import ConfigParser
from logging import getLogger from logging import getLogger

View File

@ -64,6 +64,7 @@ async def listen(
source: Callable[..., AsyncGenerator[Status, None]], source: Callable[..., AsyncGenerator[Status, None]],
drains: List[FilteredIntegration], drains: List[FilteredIntegration],
user: str, user: str,
replies_to_other_accounts_should_not_be_skipped: bool = False,
/, /,
**kwargs, **kwargs,
): ):
@ -93,7 +94,7 @@ async def listen(
if ( if (
status.in_reply_to_account_id is not None status.in_reply_to_account_id is not None
and status.in_reply_to_account_id != user and status.in_reply_to_account_id != user
): ) and not replies_to_other_accounts_should_not_be_skipped:
logger.info( logger.info(
"Skipping post %s because it's a reply to another person", "Skipping post %s because it's a reply to another person",
status.uri, status.uri,
@ -147,6 +148,11 @@ def main():
modules, modules,
user_id, user_id,
url=url, url=url,
replies_to_other_accounts_should_not_be_skipped=conf[
"main"
].getboolean(
"replies_to_other_accounts_should_not_be_skipped", False
),
reconnect=conf["main"].getboolean("auto_reconnect", False), reconnect=conf["main"].getboolean("auto_reconnect", False),
reconnect_delay=conf["main"].getfloat("reconnect_delay", 1.0), reconnect_delay=conf["main"].getfloat("reconnect_delay", 1.0),
list=conf["main"]["list"], list=conf["main"]["list"],

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from logging import getLogger from logging import getLogger
from typing import List from typing import List

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from configparser import ConfigParser, SectionProxy from configparser import ConfigParser, SectionProxy
from typing import ClassVar, Dict, NamedTuple, Type from typing import ClassVar, Dict, NamedTuple, Type

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from fnmatch import fnmatch from fnmatch import fnmatch
from typing import List from typing import List

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import ConfigParser, SectionProxy from configparser import ConfigParser, SectionProxy
from typing import Callable, ClassVar, Dict, List, Sequence from typing import Callable, ClassVar, Dict, List, Sequence
from mastoposter.filters.base import BaseFilter, FilterInstance from mastoposter.filters.base import BaseFilter, FilterInstance

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from typing import Literal, Set from typing import Literal, Set
from mastoposter.filters.base import BaseFilter from mastoposter.filters.base import BaseFilter

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from re import Pattern, compile as regexp from re import Pattern, compile as regexp
from typing import ClassVar, Set from typing import ClassVar, Set

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from re import Pattern, compile as regexp from re import Pattern, compile as regexp
from mastoposter.filters.base import BaseFilter from mastoposter.filters.base import BaseFilter

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from re import Pattern, compile as regexp from re import Pattern, compile as regexp
from typing import Optional, Set from typing import Optional, Set

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from typing import Set from typing import Set
from mastoposter.filters.base import BaseFilter from mastoposter.filters.base import BaseFilter

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from typing import List, NamedTuple from typing import List, NamedTuple
from mastoposter.filters.base import FilterInstance from mastoposter.filters.base import FilterInstance

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from configparser import SectionProxy from configparser import SectionProxy
from typing import Optional from typing import Optional

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from logging import getLogger from logging import getLogger
from typing import List, Optional from typing import List, Optional
@ -51,9 +52,11 @@ class DiscordIntegration(BaseIntegration):
"content": content, "content": content,
"username": username, "username": username,
"avatar_url": avatar_url, "avatar_url": avatar_url,
"embeds": [embed.asdict() for embed in embeds] "embeds": (
if embeds is not None [embed.asdict() for embed in embeds]
else [], if embeds is not None
else []
),
} }
logger.debug("Executing webhook with %r", json) logger.debug("Executing webhook with %r", json)

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from dataclasses import asdict, dataclass from dataclasses import asdict, dataclass
from datetime import datetime from datetime import datetime
from typing import Any, Callable, Dict, List, Optional from typing import Any, Callable, Dict, List, Optional

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import SectionProxy from configparser import SectionProxy
from dataclasses import dataclass from dataclasses import dataclass
from logging import getLogger from logging import getLogger

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from asyncio import exceptions, sleep from asyncio import exceptions, sleep
from json import loads from json import loads
from logging import getLogger from logging import getLogger

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from typing import Callable, Iterable, Literal, Optional from typing import Callable, Iterable, Literal, Optional
from bs4.element import Tag, PageElement from bs4.element import Tag, PageElement

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from bs4 import NavigableString from bs4 import NavigableString
from mastoposter.text import ( from mastoposter.text import (
nodes_process, nodes_process,

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from dataclasses import dataclass, field, fields from dataclasses import dataclass, field, fields
from datetime import datetime from datetime import datetime
from typing import Any, Callable, Optional, List, Literal, TypeVar from typing import Any, Callable, Optional, List, Literal, TypeVar

View File

@ -12,6 +12,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
""" """
from configparser import ConfigParser from configparser import ConfigParser
from logging import getLogger from logging import getLogger