Skip to content
8 changes: 3 additions & 5 deletions newspaper/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,13 @@
__copyright__ = 'Copyright 2014, Lucas Ou-Yang'

from .article import Article, ArticleException
from .api import (build, build_article, hot, languages, popular_urls,
NewsPool, Configuration as Config)
from .source import Source

from .api import build, build_article, popular_urls, hot, languages
from .api import NewsPool, Configuration as Config
from .version import __version__

news_pool = NewsPool()

from .version import __version__

# Set default logging handler to avoid "No handler found" warnings.
import logging

Expand Down
44 changes: 21 additions & 23 deletions newspaper/api.py
Original file line number Diff line number Diff line change
@@ -1,65 +1,63 @@
# -*- coding: utf-8 -*-
"""
Ignore the unused imports, this file's purpose is to make visible
anything which a user might need to import from newspaper.
View newspaper/__init__.py for its usage.
"""
__title__ = 'newspaper'
__author__ = 'Lucas Ou-Yang'
__license__ = 'MIT'
__copyright__ = 'Copyright 2014, Lucas Ou-Yang'

from .packages.feedparser import feedparser
from .source import Source
from .article import Article
from .settings import POPULAR_URLS, TRENDING_URL
from .configuration import Configuration
from .mthreading import NewsPool
from .configuration import Configuration
from .utils import print_available_languages, extend_config
from .packages.feedparser import feedparser
from .settings import POPULAR_URLS, TRENDING_URL
from .source import Source
from .utils import extend_config, print_available_languages


def build(url=u'', dry=False, config=None, **kwargs):
"""Returns a constructed source object without
downloading or parsing the articles
"""
Returns a constructed source object without
downloading or parsing the articles.
"""
config = config or Configuration() # Order matters
config = config or Configuration()
config = extend_config(config, kwargs)

url = url or ''
s = Source(url, config=config)

# dry means we are just testing, don't actually build source
if not dry:
s.build()
return s


def build_article(url=u'', config=None, **kwargs):
"""Returns a constructed article object without downloading
or parsing
"""
Returns a constructed article object without
downloading or parsing.
"""
config = config or Configuration() # Order matters
config = config or Configuration()
config = extend_config(config, kwargs)

url = url or ''
a = Article(url, config=config)
return a


def languages():
"""
Returns a list of the supported languages.
"""Returns a list of the supported languages
"""
print_available_languages()


def popular_urls():
"""
Returns a list of pre-extracted popular source urls.
"""Returns a list of pre-extracted popular source urls
"""
with open(POPULAR_URLS) as f:
urls = ['http://' + u.strip() for u in f.readlines()]
return urls


def hot():
"""
Returns a list of hit terms via google trends.
"""Returns a list of hit terms via google trends
"""
try:
listing = feedparser.parse(TRENDING_URL)['entries']
Expand Down
Loading