aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <t0m.vd.l33@gmail.com>2015-10-11 00:15:23 +0200
committerGravatar Tom van der Lee <t0m.vd.l33@gmail.com>2015-10-11 13:29:38 +0200
commitf1ddf104809017784aa136ebb8ff7e2cfb96d5f4 (patch)
tree42e28ab543cc151658151714d66a9fdd2549cc5e
parent71fb4d6c853cd3d42178758326b474b225a06425 (diff)
downloadyoutube-podcaster-f1ddf104809017784aa136ebb8ff7e2cfb96d5f4.tar.gz
youtube-podcaster-f1ddf104809017784aa136ebb8ff7e2cfb96d5f4.tar.bz2
youtube-podcaster-f1ddf104809017784aa136ebb8ff7e2cfb96d5f4.zip
Changed directory structure to use pyscaffold
-rw-r--r--.coveragerc23
-rw-r--r--.gitignore45
-rw-r--r--AUTHORS.rst5
-rw-r--r--CHANGES.rst4
-rw-r--r--README.md22
-rw-r--r--README.rst36
-rw-r--r--docs/Makefile177
-rw-r--r--docs/_static/.gitignore1
-rw-r--r--docs/authors.rst2
-rw-r--r--docs/changes.rst2
-rw-r--r--docs/conf.py238
-rw-r--r--docs/index.rst45
-rw-r--r--docs/license.rst7
-rw-r--r--requirements.txt3
-rw-r--r--setup.cfg74
-rw-r--r--setup.py24
-rw-r--r--tests/conftest.py12
-rwxr-xr-xyoutube_podcaster/youtube-podcaster (renamed from youtube-podcaster)0
-rw-r--r--youtube_podcaster/youtube-podcaster.json.sample (renamed from youtube-podcaster.json.sample)0
-rw-r--r--youtube_podcaster/youtube/__init__.py (renamed from youtube/__init__.py)0
-rw-r--r--youtube_podcaster/youtube/downloader.py (renamed from youtube/downloader.py)0
-rw-r--r--youtube_podcaster/youtube/youtube.py (renamed from youtube/youtube.py)0
22 files changed, 692 insertions, 28 deletions
diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000..142021c
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,23 @@
1# .coveragerc to control coverage.py
2[run]
3branch = True
4source = youtube_podcaster
5# omit = bad_file.py
6
7[report]
8# Regexes for lines to exclude from consideration
9exclude_lines =
10 # Have to re-enable the standard pragma
11 pragma: no cover
12
13 # Don't complain about missing debug-only code:
14 def __repr__
15 if self\.debug
16
17 # Don't complain if tests don't hit defensive assertion code:
18 raise AssertionError
19 raise NotImplementedError
20
21 # Don't complain if non-runnable code isn't run:
22 if 0:
23 if __name__ == .__main__.:
diff --git a/.gitignore b/.gitignore
index 1d7362c..f41c0ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,41 @@
1downloads/ 1# Temporary and binary files
2*~
3*.py[cod]
4*.so
5*.cfg
6!setup.cfg
7*.orig
8*.log
9*.pot
10__pycache__/*
11.cache/*
12.*.swp
2 13
3feeds.save 14# Project files
4youtube-podcaster.json 15.ropeproject
16.project
17.pydevproject
18.settings
19.idea
5 20
6*.pyc 21# Package files
7*.xml 22*.egg
8*.sw? 23*.eggs/
24.installed.cfg
25*.egg-info
26
27# Unittest and coverage
28htmlcov/*
29.coverage
30.tox
31junit.xml
32coverage.xml
33
34# Build and docs folder/files
35build/*
36dist/*
37sdist/*
38docs/api/*
39docs/_build/*
40cover/*
41MANIFEST
diff --git a/AUTHORS.rst b/AUTHORS.rst
new file mode 100644
index 0000000..b4de63b
--- /dev/null
+++ b/AUTHORS.rst
@@ -0,0 +1,5 @@
1==========
2Developers
3==========
4
5* Tom van der Lee <t0m.vd.l33@gmail.com>
diff --git a/CHANGES.rst b/CHANGES.rst
new file mode 100644
index 0000000..889f44c
--- /dev/null
+++ b/CHANGES.rst
@@ -0,0 +1,4 @@
1=========
2Changelog
3=========
4
diff --git a/README.md b/README.md
deleted file mode 100644
index 8028dfd..0000000
--- a/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
1# YouTube Podcaster
2Lets you covert YouTube-playlists to RSS podcast feeds and serve them.
3
4## Features
5* Check playlists on HTTP-request
6* Downloads videos and converts them to Ogg Vorbis files.
7* Serve RSS feed
8
9## What it doesn't do (at the moment)
10* Convert to mp3, mp4 or any other audio/video format
11* Serve the downloaded audio files (needs to be done by an other server)
12
13## Dependencies
14* [youtube-dl](https://github.com/rg3/youtube-dl)
15* [python-feedgen](https://github.com/lkiesow/python-feedgen)
16
17## To do
18* Add comments/documentation
19* Support multiple audio/video formats
20
21## LICENSE
22YouTube Podcaster is licensed under the MIT License, see the LICENSE file for more info.
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..b485fbb
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,36 @@
1YouTube Podcaster
2=================
3
4Lets you covert YouTube-playlists to RSS podcast feeds and serve them.
5
6Features
7--------
8
9- Check playlists on HTTP-request
10- Downloads videos and converts them to Ogg Vorbis files.
11- Serve RSS feed
12
13What it doesn't do (at the moment)
14----------------------------------
15
16- Convert to mp3, mp4 or any other audio/video format
17- Serve the downloaded audio files (needs to be done by an other
18 server)
19
20Dependencies
21------------
22
23- `youtube-dl <https://github.com/rg3/youtube-dl>`__
24- `python-feedgen <https://github.com/lkiesow/python-feedgen>`__
25
26To do
27-----
28
29- Add comments/documentation
30- Support multiple audio/video formats
31
32LICENSE
33-------
34
35YouTube Podcaster is licensed under the MIT License, see the LICENSE
36file for more info.
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..e8b986c
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,177 @@
1# Makefile for Sphinx documentation
2#
3
4# You can set these variables from the command line.
5SPHINXOPTS =
6SPHINXBUILD = sphinx-build
7PAPER =
8BUILDDIR = _build
9
10# User-friendly check for sphinx-build
11ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $?), 1)
12$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
13endif
14
15# Internal variables.
16PAPEROPT_a4 = -D latex_paper_size=a4
17PAPEROPT_letter = -D latex_paper_size=letter
18ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
19# the i18n builder cannot share the environment and doctrees with the others
20I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
21
22.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
23
24help:
25 @echo "Please use \`make <target>' where <target> is one of"
26 @echo " html to make standalone HTML files"
27 @echo " dirhtml to make HTML files named index.html in directories"
28 @echo " singlehtml to make a single large HTML file"
29 @echo " pickle to make pickle files"
30 @echo " json to make JSON files"
31 @echo " htmlhelp to make HTML files and a HTML help project"
32 @echo " qthelp to make HTML files and a qthelp project"
33 @echo " devhelp to make HTML files and a Devhelp project"
34 @echo " epub to make an epub"
35 @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
36 @echo " latexpdf to make LaTeX files and run them through pdflatex"
37 @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
38 @echo " text to make text files"
39 @echo " man to make manual pages"
40 @echo " texinfo to make Texinfo files"
41 @echo " info to make Texinfo files and run them through makeinfo"
42 @echo " gettext to make PO message catalogs"
43 @echo " changes to make an overview of all changed/added/deprecated items"
44 @echo " xml to make Docutils-native XML files"
45 @echo " pseudoxml to make pseudoxml-XML files for display purposes"
46 @echo " linkcheck to check all external links for integrity"
47 @echo " doctest to run all doctests embedded in the documentation (if enabled)"
48
49clean:
50 rm -rf $(BUILDDIR)/*
51
52html:
53 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
54 @echo
55 @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
56
57dirhtml:
58 $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
59 @echo
60 @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
61
62singlehtml:
63 $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
64 @echo
65 @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
66
67pickle:
68 $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
69 @echo
70 @echo "Build finished; now you can process the pickle files."
71
72json:
73 $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
74 @echo
75 @echo "Build finished; now you can process the JSON files."
76
77htmlhelp:
78 $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
79 @echo
80 @echo "Build finished; now you can run HTML Help Workshop with the" \
81 ".hhp project file in $(BUILDDIR)/htmlhelp."
82
83qthelp:
84 $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
85 @echo
86 @echo "Build finished; now you can run "qcollectiongenerator" with the" \
87 ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
88 @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/youtube-podcaster.qhcp"
89 @echo "To view the help file:"
90 @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/youtube-podcaster.qhc"
91
92devhelp:
93 $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
94 @echo
95 @echo "Build finished."
96 @echo "To view the help file:"
97 @echo "# mkdir -p $HOME/.local/share/devhelp/youtube-podcaster"
98 @echo "# ln -s $(BUILDDIR)/devhelp $HOME/.local/share/devhelp/youtube-podcaster"
99 @echo "# devhelp"
100
101epub:
102 $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
103 @echo
104 @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
105
106latex:
107 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
108 @echo
109 @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
110 @echo "Run \`make' in that directory to run these through (pdf)latex" \
111 "(use \`make latexpdf' here to do that automatically)."
112
113latexpdf:
114 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
115 @echo "Running LaTeX files through pdflatex..."
116 $(MAKE) -C $(BUILDDIR)/latex all-pdf
117 @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
118
119latexpdfja:
120 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
121 @echo "Running LaTeX files through platex and dvipdfmx..."
122 $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
123 @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
124
125text:
126 $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
127 @echo
128 @echo "Build finished. The text files are in $(BUILDDIR)/text."
129
130man:
131 $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
132 @echo
133 @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
134
135texinfo:
136 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
137 @echo
138 @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
139 @echo "Run \`make' in that directory to run these through makeinfo" \
140 "(use \`make info' here to do that automatically)."
141
142info:
143 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
144 @echo "Running Texinfo files through makeinfo..."
145 make -C $(BUILDDIR)/texinfo info
146 @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
147
148gettext:
149 $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
150 @echo
151 @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
152
153changes:
154 $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
155 @echo
156 @echo "The overview file is in $(BUILDDIR)/changes."
157
158linkcheck:
159 $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
160 @echo
161 @echo "Link check complete; look for any errors in the above output " \
162 "or in $(BUILDDIR)/linkcheck/output.txt."
163
164doctest:
165 $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
166 @echo "Testing of doctests in the sources finished, look at the " \
167 "results in $(BUILDDIR)/doctest/output.txt."
168
169xml:
170 $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
171 @echo
172 @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
173
174pseudoxml:
175 $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
176 @echo
177 @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/_static/.gitignore b/docs/_static/.gitignore
new file mode 100644
index 0000000..3c96363
--- /dev/null
+++ b/docs/_static/.gitignore
@@ -0,0 +1 @@
# Empty directory
diff --git a/docs/authors.rst b/docs/authors.rst
new file mode 100644
index 0000000..cd8e091
--- /dev/null
+++ b/docs/authors.rst
@@ -0,0 +1,2 @@
1.. _authors:
2.. include:: ../AUTHORS.rst
diff --git a/docs/changes.rst b/docs/changes.rst
new file mode 100644
index 0000000..257630a
--- /dev/null
+++ b/docs/changes.rst
@@ -0,0 +1,2 @@
1.. _changes:
2.. include:: ../CHANGES.rst
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..6467b89
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,238 @@
1# -*- coding: utf-8 -*-
2#
3# This file is execfile()d with the current directory set to its containing dir.
4#
5# Note that not all possible configuration values are present in this
6# autogenerated file.
7#
8# All configuration values have a default; values that are commented out
9# serve to show the default.
10
11import sys
12import os
13import inspect
14from sphinx import apidoc
15
16
17__location__ = os.path.join(os.getcwd(), os.path.dirname(
18 inspect.getfile(inspect.currentframe())))
19
20package = "youtube_podcaster"
21namespace = []
22namespace_pkg = ".".join([namespace[-1], package]) if namespace else package
23
24# If extensions (or modules to document with autodoc) are in another directory,
25# add these directories to sys.path here. If the directory is relative to the
26# documentation root, use os.path.abspath to make it absolute, like shown here.
27# sys.path.insert(0, os.path.abspath('.'))
28
29# -- General configuration -----------------------------------------------------
30
31# If your documentation needs a minimal Sphinx version, state it here.
32# needs_sphinx = '1.0'
33
34# Add any Sphinx extension module names here, as strings. They can be extensions
35# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
36extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo',
37 'sphinx.ext.autosummary', 'sphinx.ext.viewcode', 'sphinx.ext.coverage',
38 'sphinx.ext.doctest', 'sphinx.ext.ifconfig', 'sphinx.ext.pngmath']
39
40# Add any paths that contain templates here, relative to this directory.
41templates_path = ['_templates']
42
43# The suffix of source filenames.
44source_suffix = '.rst'
45
46# The encoding of source files.
47# source_encoding = 'utf-8-sig'
48
49# The master toctree document.
50master_doc = 'index'
51
52# General information about the project.
53project = u'youtube-podcaster'
54copyright = u'2015, Tom van der Lee'
55
56# The version info for the project you're documenting, acts as replacement for
57# |version| and |release|, also used in various other places throughout the
58# built documents.
59#
60# The short X.Y version.
61version = '' # Is set by calling `setup.py docs`
62# The full version, including alpha/beta/rc tags.
63release = '' # Is set by calling `setup.py docs`
64
65# The language for content autogenerated by Sphinx. Refer to documentation
66# for a list of supported languages.
67# language = None
68
69# There are two options for replacing |today|: either, you set today to some
70# non-false value, then it is used:
71# today = ''
72# Else, today_fmt is used as the format for a strftime call.
73# today_fmt = '%B %d, %Y'
74
75# List of patterns, relative to source directory, that match files and
76# directories to ignore when looking for source files.
77exclude_patterns = ['_build']
78
79# The reST default role (used for this markup: `text`) to use for all documents.
80# default_role = None
81
82# If true, '()' will be appended to :func: etc. cross-reference text.
83# add_function_parentheses = True
84
85# If true, the current module name will be prepended to all description
86# unit titles (such as .. function::).
87# add_module_names = True
88
89# If true, sectionauthor and moduleauthor directives will be shown in the
90# output. They are ignored by default.
91# show_authors = False
92
93# The name of the Pygments (syntax highlighting) style to use.
94pygments_style = 'sphinx'
95
96# A list of ignored prefixes for module index sorting.
97# modindex_common_prefix = []
98
99# If true, keep warnings as "system message" paragraphs in the built documents.
100# keep_warnings = False
101
102
103# -- Options for HTML output ---------------------------------------------------
104
105# The theme to use for HTML and HTML Help pages. See the documentation for
106# a list of builtin themes.
107html_theme = 'alabaster'
108
109# Theme options are theme-specific and customize the look and feel of a theme
110# further. For a list of options available for each theme, see the
111# documentation.
112# html_theme_options = {}
113
114# Add any paths that contain custom themes here, relative to this directory.
115# html_theme_path = []
116
117# The name for this set of Sphinx documents. If None, it defaults to
118# "<project> v<release> documentation".
119try:
120 from namespace_pkg import __version__ as version
121except ImportError:
122 pass
123else:
124 release = version
125
126# A shorter title for the navigation bar. Default is the same as html_title.
127# html_short_title = None
128
129# The name of an image file (relative to this directory) to place at the top
130# of the sidebar.
131# html_logo = ""
132
133# The name of an image file (within the static path) to use as favicon of the
134# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
135# pixels large.
136# html_favicon = None
137
138# Add any paths that contain custom static files (such as style sheets) here,
139# relative to this directory. They are copied after the builtin static files,
140# so a file named "default.css" will overwrite the builtin "default.css".
141html_static_path = ['_static']
142
143# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
144# using the given strftime format.
145# html_last_updated_fmt = '%b %d, %Y'
146
147# If true, SmartyPants will be used to convert quotes and dashes to
148# typographically correct entities.
149# html_use_smartypants = True
150
151# Custom sidebar templates, maps document names to template names.
152# html_sidebars = {}
153
154# Additional templates that should be rendered to pages, maps page names to
155# template names.
156# html_additional_pages = {}
157
158# If false, no module index is generated.
159# html_domain_indices = True
160
161# If false, no index is generated.
162# html_use_index = True
163
164# If true, the index is split into individual pages for each letter.
165# html_split_index = False
166
167# If true, links to the reST sources are added to the pages.
168# html_show_sourcelink = True
169
170# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
171# html_show_sphinx = True
172
173# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
174# html_show_copyright = True
175
176# If true, an OpenSearch description file will be output, and all pages will
177# contain a <link> tag referring to it. The value of this option must be the
178# base URL from which the finished HTML is served.
179# html_use_opensearch = ''
180
181# This is the file name suffix for HTML files (e.g. ".xhtml").
182# html_file_suffix = None
183
184# Output file base name for HTML help builder.
185htmlhelp_basename = 'youtube_podcaster-doc'
186
187
188# -- Options for LaTeX output --------------------------------------------------
189
190latex_elements = {
191# The paper size ('letterpaper' or 'a4paper').
192# 'papersize': 'letterpaper',
193
194# The font size ('10pt', '11pt' or '12pt').
195# 'pointsize': '10pt',
196
197# Additional stuff for the LaTeX preamble.
198# 'preamble': '',
199}
200
201# Grouping the document tree into LaTeX files. List of tuples
202# (source start file, target name, title, author, documentclass [howto/manual]).
203latex_documents = [
204 ('index', 'user_guide.tex', u'youtube-podcaster Documentation',
205 u'Tom van der Lee', 'manual'),
206]
207
208# The name of an image file (relative to this directory) to place at the top of
209# the title page.
210# latex_logo = ""
211
212# For "manual" documents, if this is true, then toplevel headings are parts,
213# not chapters.
214# latex_use_parts = False
215
216# If true, show page references after internal links.
217# latex_show_pagerefs = False
218
219# If true, show URL addresses after external links.
220# latex_show_urls = False
221
222# Documents to append as an appendix to all manuals.
223# latex_appendices = []
224
225# If false, no module index is generated.
226# latex_domain_indices = True
227
228# -- External mapping ------------------------------------------------------------
229python_version = '.'.join(map(str, sys.version_info[0:2]))
230intersphinx_mapping = {
231 'sphinx': ('http://sphinx.pocoo.org', None),
232 'python': ('http://docs.python.org/' + python_version, None),
233 'matplotlib': ('http://matplotlib.sourceforge.net', None),
234 'numpy': ('http://docs.scipy.org/doc/numpy', None),
235 'sklearn': ('http://scikit-learn.org/stable', None),
236 'pandas': ('http://pandas.pydata.org/pandas-docs/stable', None),
237 'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None),
238}
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 0000000..62a305d
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,45 @@
1=================
2youtube-podcaster
3=================
4
5This is the documentation of **youtube-podcaster**.
6
7.. note::
8
9 This is the main page of your project's `Sphinx <http://sphinx-doc.org/>`_
10 documentation. It is formatted in `reStructuredText
11 <http://sphinx-doc.org/rest.html>`__. Add additional pages by creating
12 rst-files in ``docs`` and adding them to the `toctree
13 <http://sphinx-doc.org/markup/toctree.html>`_ below. Use then
14 `references <http://sphinx-doc.org/markup/inline.html>`__ in order to link
15 them from this page, e.g. :ref:`authors <authors>` and :ref:`changes`.
16 It is also possible to refer to the documentation of other Python packages
17 with the `Python domain syntax
18 <http://sphinx-doc.org/domains.html#the-python-domain>`__. By default you
19 can reference the documentation of `Sphinx <http://sphinx.pocoo.org>`__,
20 `Python <http://docs.python.org/>`__, `matplotlib
21 <http://matplotlib.sourceforge.net>`__, `NumPy
22 <http://docs.scipy.org/doc/numpy>`__, `Scikit-Learn
23 <http://scikit-learn.org/stable>`__, `Pandas
24 <http://pandas.pydata.org/pandas-docs/stable>`__, `SciPy
25 <http://docs.scipy.org/doc/scipy/reference/>`__. You can add more by
26 extending the ``intersphinx_mapping`` in your Sphinx's ``conf.py``.
27
28Contents
29========
30
31.. toctree::
32 :maxdepth: 2
33
34 License <license>
35 Authors <authors>
36 Changelog <changes>
37 Module Reference <api/modules>
38
39
40Indices and tables
41==================
42
43* :ref:`genindex`
44* :ref:`modindex`
45* :ref:`search`
diff --git a/docs/license.rst b/docs/license.rst
new file mode 100644
index 0000000..943758d
--- /dev/null
+++ b/docs/license.rst
@@ -0,0 +1,7 @@
1.. _license:
2
3=======
4License
5=======
6
7.. literalinclude:: ../LICENSE
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..bee56c1
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,3 @@
1# Add your requirements here like:
2youtube-dl
3feedgen
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..1d3b7c5
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,74 @@
1[metadata]
2name = youtube-podcaster
3summary = Converts youtube playlists to RSS-feeds
4author = Tom van der Lee
5author-email = t0m.vd.l33@gmail.com
6license = MIT License
7home-page = http://github.com/tomvanderlee/youtube-podcaster
8description-file = README.rst
9# Add here all kinds of additional classifiers as defined under
10# https://pypi.python.org/pypi?%3Aaction=list_classifiers
11classifiers = Development Status :: 3 - Alpha,
12 License :: OSI Approved :: MIT License
13 Programming Language :: Python :: 3 :: Only
14
15[entry_points]
16# Add here console scripts like:
17# console_scripts =
18# hello_world = youtube_podcaster.module:function
19# as well as other entry_points.
20
21
22[files]
23# Add here 'data_files', 'packages' or 'namespace_packages'.
24# Additional data files are defined as key value pairs of source and target:
25packages =
26 youtube_podcaster
27# data_files =
28# share/youtube_podcaster_docs = docs/*
29
30[extras]
31# Add here additional requirements for extra features, like:
32# PDF =
33# ReportLab>=1.2
34# RXP
35
36[test]
37# py.test options when running `python setup.py test`
38addopts = tests
39
40[pytest]
41# Options for py.test:
42# Specify command line options as you would do when invoking py.test directly.
43# e.g. --cov-report html (or xml) for html/xml output or --junitxml junit.xml
44# in order to write a coverage file that can be read by Jenkins.
45addopts =
46 --cov youtube_podcaster --cov-report term-missing
47 --verbose
48
49[aliases]
50docs = build_sphinx
51
52[bdist_wheel]
53# Use this option if your package is pure-python
54universal = 1
55
56[build_sphinx]
57source_dir = docs
58build_dir = docs/_build
59
60[pbr]
61# Let pbr run sphinx-apidoc
62autodoc_tree_index_modules = True
63# autodoc_tree_excludes = ...
64# Let pbr itself generate the apidoc
65# autodoc_index_modules = True
66# autodoc_exclude_modules = ...
67# Convert warnings to errors
68# warnerrors = True
69
70[devpi:upload]
71# Options for the devpi: PyPI serer and packaging tool
72# VCS export must be deactivated since we are using setuptools-scm
73no-vcs = 1
74format = bdist_wheel
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..3ec3131
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,24 @@
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3"""
4 Setup file for youtube_podcaster.
5
6 This file was generated with PyScaffold 2.4.2, a tool that easily
7 puts up a scaffold for your new Python project. Learn more under:
8 http://pyscaffold.readthedocs.org/
9"""
10
11import sys
12from setuptools import setup
13
14
15def setup_package():
16 needs_sphinx = {'build_sphinx', 'upload_docs'}.intersection(sys.argv)
17 sphinx = ['sphinx'] if needs_sphinx else []
18 setup(setup_requires=['six', 'pyscaffold>=2.4rc1,<2.5a0'] + sphinx,
19 tests_require=['pytest_cov', 'pytest'],
20 use_pyscaffold=True)
21
22
23if __name__ == "__main__":
24 setup_package()
diff --git a/tests/conftest.py b/tests/conftest.py
new file mode 100644
index 0000000..1a40d64
--- /dev/null
+++ b/tests/conftest.py
@@ -0,0 +1,12 @@
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3"""
4 Dummy conftest.py for youtube_podcaster.
5
6 If you don't know what this is for, just leave it empty.
7 Read more about conftest.py under:
8 https://pytest.org/latest/plugins.html
9"""
10from __future__ import print_function, absolute_import, division
11
12import pytest
diff --git a/youtube-podcaster b/youtube_podcaster/youtube-podcaster
index bb2db26..bb2db26 100755
--- a/youtube-podcaster
+++ b/youtube_podcaster/youtube-podcaster
diff --git a/youtube-podcaster.json.sample b/youtube_podcaster/youtube-podcaster.json.sample
index d9d078f..d9d078f 100644
--- a/youtube-podcaster.json.sample
+++ b/youtube_podcaster/youtube-podcaster.json.sample
diff --git a/youtube/__init__.py b/youtube_podcaster/youtube/__init__.py
index d26ae61..d26ae61 100644
--- a/youtube/__init__.py
+++ b/youtube_podcaster/youtube/__init__.py
diff --git a/youtube/downloader.py b/youtube_podcaster/youtube/downloader.py
index ca1327b..ca1327b 100644
--- a/youtube/downloader.py
+++ b/youtube_podcaster/youtube/downloader.py
diff --git a/youtube/youtube.py b/youtube_podcaster/youtube/youtube.py
index bcbff21..bcbff21 100644
--- a/youtube/youtube.py
+++ b/youtube_podcaster/youtube/youtube.py