Make models use slots
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Image
|
from ._core import attrs_default, Image
|
||||||
from . import _util
|
from . import _util
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Attachment:
|
class Attachment:
|
||||||
"""Represents a Facebook attachment."""
|
"""Represents a Facebook attachment."""
|
||||||
|
|
||||||
@@ -11,12 +11,12 @@ class Attachment:
|
|||||||
uid = attr.ib(None)
|
uid = attr.ib(None)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class UnsentMessage(Attachment):
|
class UnsentMessage(Attachment):
|
||||||
"""Represents an unsent message attachment."""
|
"""Represents an unsent message attachment."""
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class ShareAttachment(Attachment):
|
class ShareAttachment(Attachment):
|
||||||
"""Represents a shared item (e.g. URL) attachment."""
|
"""Represents a shared item (e.g. URL) attachment."""
|
||||||
|
|
||||||
|
@@ -4,6 +4,9 @@ import aenum
|
|||||||
|
|
||||||
log = logging.getLogger("fbchat")
|
log = logging.getLogger("fbchat")
|
||||||
|
|
||||||
|
#: Default attrs settings for classes
|
||||||
|
attrs_default = attr.s(slots=True) # TODO: Add kw_only=True
|
||||||
|
|
||||||
|
|
||||||
class Enum(aenum.Enum):
|
class Enum(aenum.Enum):
|
||||||
"""Used internally by ``fbchat`` to support enumerations"""
|
"""Used internally by ``fbchat`` to support enumerations"""
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Image
|
from ._core import attrs_default, Image
|
||||||
from . import _util
|
from . import _util
|
||||||
from ._attachment import Attachment
|
from ._attachment import Attachment
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class FileAttachment(Attachment):
|
class FileAttachment(Attachment):
|
||||||
"""Represents a file that has been sent as a Facebook attachment."""
|
"""Represents a file that has been sent as a Facebook attachment."""
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ class FileAttachment(Attachment):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class AudioAttachment(Attachment):
|
class AudioAttachment(Attachment):
|
||||||
"""Represents an audio file that has been sent as a Facebook attachment."""
|
"""Represents an audio file that has been sent as a Facebook attachment."""
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ class AudioAttachment(Attachment):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class ImageAttachment(Attachment):
|
class ImageAttachment(Attachment):
|
||||||
"""Represents an image that has been sent as a Facebook attachment.
|
"""Represents an image that has been sent as a Facebook attachment.
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ class ImageAttachment(Attachment):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class VideoAttachment(Attachment):
|
class VideoAttachment(Attachment):
|
||||||
"""Represents a video that has been sent as a Facebook attachment."""
|
"""Represents a video that has been sent as a Facebook attachment."""
|
||||||
|
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Image
|
from ._core import attrs_default, Image
|
||||||
from . import _util, _plan
|
from . import _util, _plan
|
||||||
from ._thread import ThreadType, Thread
|
from ._thread import ThreadType, Thread
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Group(Thread):
|
class Group(Thread):
|
||||||
"""Represents a Facebook group. Inherits `Thread`."""
|
"""Represents a Facebook group. Inherits `Thread`."""
|
||||||
|
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Image
|
from ._core import attrs_default, Image
|
||||||
from ._attachment import Attachment
|
from ._attachment import Attachment
|
||||||
from . import _util
|
from . import _util
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class LocationAttachment(Attachment):
|
class LocationAttachment(Attachment):
|
||||||
"""Represents a user location.
|
"""Represents a user location.
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ class LocationAttachment(Attachment):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class LiveLocationAttachment(LocationAttachment):
|
class LiveLocationAttachment(LocationAttachment):
|
||||||
"""Represents a live user location."""
|
"""Represents a live user location."""
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import attr
|
import attr
|
||||||
import json
|
import json
|
||||||
from string import Formatter
|
from string import Formatter
|
||||||
from ._core import log, Enum
|
from ._core import log, attrs_default, Enum
|
||||||
from . import _util, _attachment, _location, _file, _quick_reply, _sticker
|
from . import _util, _attachment, _location, _file, _quick_reply, _sticker
|
||||||
|
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ class MessageReaction(Enum):
|
|||||||
NO = "👎"
|
NO = "👎"
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Mention:
|
class Mention:
|
||||||
"""Represents a ``@mention``."""
|
"""Represents a ``@mention``."""
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ class Mention:
|
|||||||
length = attr.ib(10)
|
length = attr.ib(10)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Message:
|
class Message:
|
||||||
"""Represents a Facebook message."""
|
"""Represents a Facebook message."""
|
||||||
|
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Image
|
from ._core import attrs_default, Image
|
||||||
from . import _plan
|
from . import _plan
|
||||||
from ._thread import ThreadType, Thread
|
from ._thread import ThreadType, Thread
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Page(Thread):
|
class Page(Thread):
|
||||||
"""Represents a Facebook page. Inherits `Thread`."""
|
"""Represents a Facebook page. Inherits `Thread`."""
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import attr
|
import attr
|
||||||
import json
|
import json
|
||||||
from ._core import Enum
|
from ._core import attrs_default, Enum
|
||||||
from . import _util
|
from . import _util
|
||||||
|
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ class GuestStatus(Enum):
|
|||||||
DECLINED = 3
|
DECLINED = 3
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Plan:
|
class Plan:
|
||||||
"""Represents a plan."""
|
"""Represents a plan."""
|
||||||
|
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
import attr
|
import attr
|
||||||
|
from ._core import attrs_default
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Poll:
|
class Poll:
|
||||||
"""Represents a poll."""
|
"""Represents a poll."""
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ class Poll:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class PollOption:
|
class PollOption:
|
||||||
"""Represents a poll option."""
|
"""Represents a poll option."""
|
||||||
|
|
||||||
|
@@ -1,8 +1,9 @@
|
|||||||
import attr
|
import attr
|
||||||
|
from ._core import attrs_default
|
||||||
from ._attachment import Attachment
|
from ._attachment import Attachment
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class QuickReply:
|
class QuickReply:
|
||||||
"""Represents a quick reply."""
|
"""Represents a quick reply."""
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ class QuickReply:
|
|||||||
is_response = attr.ib(False)
|
is_response = attr.ib(False)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class QuickReplyText(QuickReply):
|
class QuickReplyText(QuickReply):
|
||||||
"""Represents a text quick reply."""
|
"""Represents a text quick reply."""
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ class QuickReplyText(QuickReply):
|
|||||||
_type = "text"
|
_type = "text"
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class QuickReplyLocation(QuickReply):
|
class QuickReplyLocation(QuickReply):
|
||||||
"""Represents a location quick reply (Doesn't work on mobile)."""
|
"""Represents a location quick reply (Doesn't work on mobile)."""
|
||||||
|
|
||||||
@@ -36,7 +37,7 @@ class QuickReplyLocation(QuickReply):
|
|||||||
_type = "location"
|
_type = "location"
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class QuickReplyPhoneNumber(QuickReply):
|
class QuickReplyPhoneNumber(QuickReply):
|
||||||
"""Represents a phone number quick reply (Doesn't work on mobile)."""
|
"""Represents a phone number quick reply (Doesn't work on mobile)."""
|
||||||
|
|
||||||
@@ -46,7 +47,7 @@ class QuickReplyPhoneNumber(QuickReply):
|
|||||||
_type = "user_phone_number"
|
_type = "user_phone_number"
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class QuickReplyEmail(QuickReply):
|
class QuickReplyEmail(QuickReply):
|
||||||
"""Represents an email quick reply (Doesn't work on mobile)."""
|
"""Represents an email quick reply (Doesn't work on mobile)."""
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@ import requests
|
|||||||
import random
|
import random
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
|
|
||||||
from ._core import log
|
from ._core import log, attrs_default
|
||||||
from . import _graphql, _util, _exception
|
from . import _graphql, _util, _exception
|
||||||
|
|
||||||
FB_DTSG_REGEX = re.compile(r'name="fb_dtsg" value="(.*?)"')
|
FB_DTSG_REGEX = re.compile(r'name="fb_dtsg" value="(.*?)"')
|
||||||
@@ -98,7 +98,7 @@ def _2fa_helper(session, code, r):
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
@attr.s(slots=True) # TODO i Python 3: Add kw_only=True
|
@attrs_default # TODO i Python 3: Add kw_only=True
|
||||||
class State:
|
class State:
|
||||||
"""Stores and manages state required for most Facebook requests."""
|
"""Stores and manages state required for most Facebook requests."""
|
||||||
|
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Image
|
from ._core import attrs_default, Image
|
||||||
from ._attachment import Attachment
|
from ._attachment import Attachment
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Sticker(Attachment):
|
class Sticker(Attachment):
|
||||||
"""Represents a Facebook sticker that has been sent to a thread as an attachment."""
|
"""Represents a Facebook sticker that has been sent to a thread as an attachment."""
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Enum, Image
|
from ._core import attrs_default, Enum, Image
|
||||||
|
|
||||||
|
|
||||||
class ThreadType(Enum):
|
class ThreadType(Enum):
|
||||||
@@ -67,7 +67,7 @@ class ThreadColor(Enum):
|
|||||||
return cls._extend_if_invalid(value)
|
return cls._extend_if_invalid(value)
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class Thread:
|
class Thread:
|
||||||
"""Represents a Facebook thread."""
|
"""Represents a Facebook thread."""
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import attr
|
import attr
|
||||||
from ._core import Enum, Image
|
from ._core import attrs_default, Enum, Image
|
||||||
from . import _util, _plan
|
from . import _util, _plan
|
||||||
from ._thread import ThreadType, Thread
|
from ._thread import ThreadType, Thread
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ class TypingStatus(Enum):
|
|||||||
TYPING = 1
|
TYPING = 1
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attrs_default
|
||||||
class User(Thread):
|
class User(Thread):
|
||||||
"""Represents a Facebook user. Inherits `Thread`."""
|
"""Represents a Facebook user. Inherits `Thread`."""
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user