Sfoglia il codice sorgente

Do not export tweet_factory & factor MediaParser

theenglishway (time) 7 anni fa
parent
commit
5325b415f8
3 ha cambiato i file con 3 aggiunte e 18 eliminazioni
  1. 1 1
      tests/conftest.py
  2. 1 3
      twhatter/parser/__init__.py
  3. 1 14
      twhatter/parser/media.py

+ 1 - 1
tests/conftest.py

@@ -5,7 +5,7 @@ from click.testing import CliRunner
 from bs4 import BeautifulSoup
 
 from twhatter.exploration import NodeTimeline
-from twhatter.parser import tweet_factory
+from twhatter.parser.tweet import tweet_factory
 from typing import NamedTuple, List
 
 from twhatter.parser.media import MediaBase

+ 1 - 3
twhatter/parser/__init__.py

@@ -1,12 +1,10 @@
 from .tweet import (TweetBase, ParserTweet,
-                    tweet_factory,
-                    TweetTextOnly, TweetLink, TweetReaction, TweetRetweet,)
+                    TweetTextOnly, TweetLink, TweetReaction, TweetRetweet)
 from .user import User, ParserUser
 from .media import MediaBase, MediaImage, media_factory, ParserMedia
 
 __all__= [
     "TweetBase",
-    "tweet_factory",
     "TweetTextOnly",
     "TweetLink",
     "TweetReaction",

+ 1 - 14
twhatter/parser/media.py

@@ -68,20 +68,7 @@ class ParserMedia(ParserBase):
         self.soup = soup
 
     def __iter__(self):
-        kwargs = {
-            f.name: MediaBase._extract_value(self.soup, f) for f in fields(MediaBase)
-        }
-
-        for kls in MediaBase.__subclasses__():
-            try:
-                if kls.condition(kwargs):
-                    m = kls(soup=self.soup, **kwargs)
-                    logger.debug("Parsed media {}".format(m))
-                    return m
-            except NotImplementedError:
-                continue
-
-        return None
+        return media_factory(self.soup)
 
     def __len__(self):
         return 1