├── docs ├── .nojekyll ├── erm.mwb ├── html │ ├── objects.inv │ ├── _static │ │ ├── up.png │ │ ├── down.png │ │ ├── file.png │ │ ├── minus.png │ │ ├── plus.png │ │ ├── comment.png │ │ ├── up-pressed.png │ │ ├── ajax-loader.gif │ │ ├── comment-close.png │ │ ├── down-pressed.png │ │ ├── comment-bright.png │ │ ├── fonts │ │ │ ├── Lato │ │ │ │ ├── lato-bold.eot │ │ │ │ ├── lato-bold.ttf │ │ │ │ ├── lato-bold.woff │ │ │ │ ├── lato-bold.woff2 │ │ │ │ ├── lato-italic.eot │ │ │ │ ├── lato-italic.ttf │ │ │ │ ├── lato-italic.woff │ │ │ │ ├── lato-regular.eot │ │ │ │ ├── lato-regular.ttf │ │ │ │ ├── lato-italic.woff2 │ │ │ │ ├── lato-regular.woff │ │ │ │ ├── lato-regular.woff2 │ │ │ │ ├── lato-bolditalic.eot │ │ │ │ ├── lato-bolditalic.ttf │ │ │ │ ├── lato-bolditalic.woff │ │ │ │ └── lato-bolditalic.woff2 │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ └── RobotoSlab │ │ │ │ ├── roboto-slab-v7-bold.eot │ │ │ │ ├── roboto-slab-v7-bold.ttf │ │ │ │ ├── roboto-slab-v7-bold.woff │ │ │ │ ├── roboto-slab-v7-bold.woff2 │ │ │ │ ├── roboto-slab-v7-regular.eot │ │ │ │ ├── roboto-slab-v7-regular.ttf │ │ │ │ ├── roboto-slab-v7-regular.woff │ │ │ │ └── roboto-slab-v7-regular.woff2 │ │ ├── documentation_options.js │ │ ├── css │ │ │ └── badge_only.css │ │ ├── js │ │ │ ├── theme.js │ │ │ └── modernizr.min.js │ │ ├── pygments.css │ │ ├── doctools.js │ │ ├── underscore.js │ │ └── basic.css │ ├── _sources │ │ ├── like.rst.txt │ │ ├── login.rst.txt │ │ ├── util.rst.txt │ │ ├── instapy.rst.txt │ │ ├── profile.rst.txt │ │ ├── unfollow.rst.txt │ │ ├── blacklist.rst.txt │ │ ├── time_util.rst.txt │ │ └── index.rst.txt │ ├── .buildinfo │ ├── search.html │ ├── profile.html │ ├── searchindex.js │ ├── index.html │ ├── py-modindex.html │ ├── time_util.html │ ├── login.html │ ├── like.html │ ├── util.html │ └── blacklist.html ├── source │ ├── .DS_Store │ ├── like.rst │ ├── util.rst │ ├── login.rst │ ├── instapy.rst │ ├── profile.rst │ ├── blacklist.rst │ ├── time_util.rst │ ├── unfollow.rst │ ├── index.rst │ └── conf.py ├── index.html ├── Makefile └── How_To_DO_Ubuntu_on_Digital_Ocean.md ├── app ├── __init__.py ├── print_log_writer.py ├── profile.py ├── time_util.py ├── login.py ├── blacklist.py └── util.py ├── db └── instapy-light.db ├── logs └── .gitignore ├── config.py └── README.md /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- 1 | from .instapy import InstaPyLight 2 | -------------------------------------------------------------------------------- /docs/erm.mwb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/erm.mwb -------------------------------------------------------------------------------- /db/instapy-light.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/db/instapy-light.db -------------------------------------------------------------------------------- /docs/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/objects.inv -------------------------------------------------------------------------------- /docs/source/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/source/.DS_Store -------------------------------------------------------------------------------- /logs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /docs/html/_static/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/up.png -------------------------------------------------------------------------------- /docs/source/like.rst: -------------------------------------------------------------------------------- 1 | Like Features 2 | ============= 3 | 4 | .. automodule:: app.like 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/source/util.rst: -------------------------------------------------------------------------------- 1 | Util Features 2 | ============= 3 | 4 | .. automodule:: app.util 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_static/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/down.png -------------------------------------------------------------------------------- /docs/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/file.png -------------------------------------------------------------------------------- /docs/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/minus.png -------------------------------------------------------------------------------- /docs/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/plus.png -------------------------------------------------------------------------------- /docs/source/login.rst: -------------------------------------------------------------------------------- 1 | Login Features 2 | ============== 3 | 4 | .. automodule:: app.login 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_static/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/comment.png -------------------------------------------------------------------------------- /docs/source/instapy.rst: -------------------------------------------------------------------------------- 1 | Main Features 2 | ============= 3 | 4 | .. automodule:: app.instapy 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_sources/like.rst.txt: -------------------------------------------------------------------------------- 1 | Like Features 2 | ============= 3 | 4 | .. automodule:: app.like 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_sources/login.rst.txt: -------------------------------------------------------------------------------- 1 | Login Features 2 | ============== 3 | 4 | .. automodule:: app.login 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_sources/util.rst.txt: -------------------------------------------------------------------------------- 1 | Util Features 2 | ============= 3 | 4 | .. automodule:: app.util 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_static/up-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/up-pressed.png -------------------------------------------------------------------------------- /docs/source/profile.rst: -------------------------------------------------------------------------------- 1 | Profile Features 2 | ================ 3 | 4 | .. automodule:: app.profile 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_sources/instapy.rst.txt: -------------------------------------------------------------------------------- 1 | Main Features 2 | ============= 3 | 4 | .. automodule:: app.instapy 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_static/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/ajax-loader.gif -------------------------------------------------------------------------------- /docs/html/_static/comment-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/comment-close.png -------------------------------------------------------------------------------- /docs/html/_static/down-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/down-pressed.png -------------------------------------------------------------------------------- /docs/source/blacklist.rst: -------------------------------------------------------------------------------- 1 | Blacklist Features 2 | ================== 3 | 4 | .. automodule:: app.blacklist 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/source/time_util.rst: -------------------------------------------------------------------------------- 1 | Time Util Features 2 | ================== 3 | 4 | .. automodule:: app.time_util 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/source/unfollow.rst: -------------------------------------------------------------------------------- 1 | Unfollow Features 2 | ================= 3 | 4 | .. automodule:: app.unfollow 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_sources/profile.rst.txt: -------------------------------------------------------------------------------- 1 | Profile Features 2 | ================ 3 | 4 | .. automodule:: app.profile 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_static/comment-bright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/comment-bright.png -------------------------------------------------------------------------------- /docs/html/_sources/unfollow.rst.txt: -------------------------------------------------------------------------------- 1 | Unfollow Features 2 | ================= 3 | 4 | .. automodule:: app.unfollow 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_sources/blacklist.rst.txt: -------------------------------------------------------------------------------- 1 | Blacklist Features 2 | ================== 3 | 4 | .. automodule:: app.blacklist 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_sources/time_util.rst.txt: -------------------------------------------------------------------------------- 1 | Time Util Features 2 | ================== 3 | 4 | .. automodule:: app.time_util 5 | :members: 6 | -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bold.eot -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bold.ttf -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bold.woff -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bold.woff2 -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-italic.eot -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-italic.ttf -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-italic.woff -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-regular.eot -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-regular.ttf -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-italic.woff2 -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-regular.woff -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-regular.woff2 -------------------------------------------------------------------------------- /docs/html/_static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/html/_static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bolditalic.eot -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bolditalic.ttf -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bolditalic.woff -------------------------------------------------------------------------------- /docs/html/_static/fonts/Lato/lato-bolditalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/Lato/lato-bolditalic.woff2 -------------------------------------------------------------------------------- /docs/html/_static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/html/_static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff -------------------------------------------------------------------------------- /docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/converge/InstaPy-Light/HEAD/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 -------------------------------------------------------------------------------- /docs/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 24fba2c44ed63508c6b0333a04d5d32d 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |
40 |
41 | ### Setup your Instagram account
42 |
43 |
44 |
45 | ## Features
46 |
47 | ### Like By Tags
48 |
49 | - **tags** a list of tags to be used to like posts
50 | - **amount** the amount of posts you would like to like
51 |
52 | **example:**
53 |
54 | ```python
55 | tags = ['johnassaraf', 'lawofattraction']
56 | session.like_by_tags(tags, amount=3)
57 | ```
58 |
59 | Every tag will be liked n(amount) times.
60 |
61 | ### Follow Competitors Followers
62 |
63 | Follow your competitors followers.
64 |
65 | - **profile** list of competitors to follow their followers
66 | - **amount** the amount of profiles to be followed by competitor
67 |
68 | ```python
69 | profiles = ['instagram', 'facebook', 'spotify']
70 | session.follow_user_followers(profiles, amount=5)
71 | ```
72 |
73 | ### Blacklist
74 |
75 | This feature allows us to blacklist profiles **by campaign**.
76 |
77 | - **campaign** campaign name
78 | - **blacklist_likes=True** avoid liking profiles already liked
79 | - **blacklist_follows=True** avoid following already followed profiles
80 | - **never_follow_again=True** avoid unfollow and follow a profile again. After follow/unfollow process, the profile won't be followed again.
81 |
82 | **example:**
83 |
84 | ```python
85 | session.set_blacklist(campaign='blacklist_campaign',
86 | blacklist_likes=True,
87 | blacklist_follows=True,
88 | never_follow_again=True)
89 | ```
90 |
91 | ### Unfollow by Blacklist Campaign
92 |
93 | Unfollow only profiles saved in your previous blacklist campaign
94 |
95 | - **campaign** blacklist campaign name
96 | - **amount** amount of profiles to be unfollowed
97 |
98 | ```python
99 | session.unfollow_by_blacklist_campaign(campaign='blacklist_campaign',
100 | amount=5)
101 | ```
102 |
103 | ### Unfollow
104 |
105 | Unfollow profiles
106 |
107 | - **amount** amount of profiles to be unfollowed
108 |
109 | ```python
110 | session.unfollow_users(amount=5)
111 | ```
112 |
113 | ### Save Screenshot
114 |
115 | This is useful when you´re running it in a server and don´t have access to the
116 | screen of the browser. If some error was raised, you can see the last screen to
117 | be able to check what could be wrong.
118 |
119 | - **filename** file name to be saved in the root folder of InstaPy-Light
120 | ```python
121 | session.save_screenshot(filename='image.png')
122 | ```
123 |
124 | ## Developers Documentation:
125 |
126 | https://converge.github.io/InstaPy-Light
127 |
128 | ## Feedback
129 |
130 | Feel free to send me feedbacks to joaovanzuita@me.com
131 |
132 | ## Keep The Project Alive
133 |
134 | [Donate any value using Paypal](https://www.paypal.me/joaovanzuita?ppid=PPC000628&cnac=BR&rsta=en_BR%28en_AR%29&cust=Z8V4LFWNLXJ5S&unptid=9a9fa222-b75f-11e8-822d-441ea1470e54&t=&cal=62f3404cebe63&calc=62f3404cebe63&calf=62f3404cebe63&unp_tpcid=ppme-social-user-profile-created&page=main:email&pgrp=main:email&e=op&mchn=em&s=ci&mail=sys)
135 |
--------------------------------------------------------------------------------
/docs/source/conf.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Configuration file for the Sphinx documentation builder.
4 | #
5 | # This file does only contain a selection of the most common options. For a
6 | # full list see the documentation:
7 | # http://www.sphinx-doc.org/en/master/config
8 |
9 | # -- Path setup --------------------------------------------------------------
10 |
11 | # If extensions (or modules to document with autodoc) are in another directory,
12 | # add these directories to sys.path here. If the directory is relative to the
13 | # documentation root, use os.path.abspath to make it absolute, like shown here.
14 | #
15 | import os
16 | import sys
17 | sys.path.insert(0, os.path.abspath('../..'))
18 |
19 |
20 | # -- Project information -----------------------------------------------------
21 |
22 | project = 'InstaPy Light'
23 | copyright = '2018, converge'
24 | author = 'converge'
25 |
26 | # The short X.Y version
27 | version = ''
28 | # The full version, including alpha/beta/rc tags
29 | release = '0.1'
30 |
31 |
32 | # -- General configuration ---------------------------------------------------
33 |
34 | # If your documentation needs a minimal Sphinx version, state it here.
35 | #
36 | # needs_sphinx = '1.0'
37 |
38 | # Add any Sphinx extension module names here, as strings. They can be
39 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
40 | # ones.
41 | extensions = [
42 | 'sphinx.ext.autodoc',
43 | 'sphinx.ext.todo'
44 | ]
45 |
46 | # Add any paths that contain templates here, relative to this directory.
47 | templates_path = ['_templates']
48 |
49 | # The suffix(es) of source filenames.
50 | # You can specify multiple suffix as a list of string:
51 | #
52 | # source_suffix = ['.rst', '.md']
53 | source_suffix = '.rst'
54 |
55 | # The master toctree document.
56 | master_doc = 'index'
57 |
58 | # The language for content autogenerated by Sphinx. Refer to documentation
59 | # for a list of supported languages.
60 | #
61 | # This is also used if you do content translation via gettext catalogs.
62 | # Usually you set "language" from the command line for these cases.
63 | language = None
64 |
65 | # List of patterns, relative to source directory, that match files and
66 | # directories to ignore when looking for source files.
67 | # This pattern also affects html_static_path and html_extra_path .
68 | exclude_patterns = []
69 |
70 | # The name of the Pygments (syntax highlighting) style to use.
71 | pygments_style = 'sphinx'
72 |
73 |
74 | # -- Options for HTML output -------------------------------------------------
75 |
76 | # The theme to use for HTML and HTML Help pages. See the documentation for
77 | # a list of builtin themes.
78 | #
79 | html_theme = 'sphinx_rtd_theme'
80 |
81 | # Theme options are theme-specific and customize the look and feel of a theme
82 | # further. For a list of options available for each theme, see the
83 | # documentation.
84 | #
85 | # html_theme_options = {}
86 |
87 | # Add any paths that contain custom static files (such as style sheets) here,
88 | # relative to this directory. They are copied after the builtin static files,
89 | # so a file named "default.css" will overwrite the builtin "default.css".
90 | html_static_path = ['_static']
91 |
92 | # Custom sidebar templates, must be a dictionary that maps document names
93 | # to template names.
94 | #
95 | # The default sidebars (for documents that don't match any pattern) are
96 | # defined by theme itself. Builtin themes are using these templates by
97 | # default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
98 | # 'searchbox.html']``.
99 | #
100 | # html_sidebars = {}
101 |
102 |
103 | # -- Options for HTMLHelp output ---------------------------------------------
104 |
105 | # Output file base name for HTML help builder.
106 | htmlhelp_basename = 'InstaPyLightdoc'
107 |
108 |
109 | # -- Options for LaTeX output ------------------------------------------------
110 |
111 | latex_elements = {
112 | # The paper size ('letterpaper' or 'a4paper').
113 | #
114 | # 'papersize': 'letterpaper',
115 |
116 | # The font size ('10pt', '11pt' or '12pt').
117 | #
118 | # 'pointsize': '10pt',
119 |
120 | # Additional stuff for the LaTeX preamble.
121 | #
122 | # 'preamble': '',
123 |
124 | # Latex figure (float) alignment
125 | #
126 | # 'figure_align': 'htbp',
127 | }
128 |
129 | # Grouping the document tree into LaTeX files. List of tuples
130 | # (source start file, target name, title,
131 | # author, documentclass [howto, manual, or own class]).
132 | latex_documents = [
133 | (master_doc, 'InstaPyLight.tex', 'InstaPy Light Documentation',
134 | 'converge', 'manual'),
135 | ]
136 |
137 |
138 | # -- Options for manual page output ------------------------------------------
139 |
140 | # One entry per manual page. List of tuples
141 | # (source start file, name, description, authors, manual section).
142 | man_pages = [
143 | (master_doc, 'instapylight', 'InstaPy Light Documentation',
144 | [author], 1)
145 | ]
146 |
147 |
148 | # -- Options for Texinfo output ----------------------------------------------
149 |
150 | # Grouping the document tree into Texinfo files. List of tuples
151 | # (source start file, target name, title, author,
152 | # dir menu entry, description, category)
153 | texinfo_documents = [
154 | (master_doc, 'InstaPyLight', 'InstaPy Light Documentation',
155 | author, 'InstaPyLight', 'One line description of project.',
156 | 'Miscellaneous'),
157 | ]
158 |
159 |
160 | # -- Extension configuration -------------------------------------------------
161 |
--------------------------------------------------------------------------------
/docs/html/search.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | Class to manage Profile object
158 |Contents:
158 || 162 | a | ||
| 166 | |
167 | app | 168 | |
| 171 | |
172 | app.blacklist | 173 | |
| 176 | |
177 | app.instapy | 178 | |
| 181 | |
182 | app.like | 183 | |
| 186 | |
187 | app.login | 188 | |
| 191 | |
192 | app.profile | 193 | |
| 196 | |
197 | app.time_util | 198 | |
| 201 | |
202 | app.unfollow | 203 | |
| 206 | |
207 | app.util | 208 | |
Helper module to handle time related stuff
158 |app.time_util.randomize_time(mean)¶Note
163 |We need to rethink it
164 |app.time_util.set_sleep_percentage(percentage)¶Note
172 |We need to rethink it
173 |app.time_util.sleep(t, custom_percentage=None)¶Note
181 |We need to rethink it
182 |Module only used for the login part of the script
158 |app.login.bypass_suspicious_login(browser)¶Bypass suspicious loggin attempt verification. This should be only enabled 162 | when there isn’t available cookie for the username, otherwise it will and 163 | shows “Unable to locate email or phone button” message, folollowed by 164 | CRITICAL - Wrong login data!
165 || browser: | web driver | 172 |
|---|
app.login.login_user(browser, username, password, account_id, switch_language=True, bypass_suspicious_attempt=False)¶Logins the user with the given username and password
183 || browser: | web driver | 190 |
|---|---|
| username: | our username | 192 |
| password: | password | 194 |
| switch_language: | |
| do we still need it ? | 197 ||
| bypass_suspicious_login: | |
| bypass suspicious login attempt | 200 ||
' + _('Hide Search Matches') + '
') 233 | .appendTo($('#searchbox')); 234 | } 235 | }, 236 | 237 | /** 238 | * init the domain index toggle buttons 239 | */ 240 | initIndexTable : function() { 241 | var togglers = $('img.toggler').click(function() { 242 | var src = $(this).attr('src'); 243 | var idnum = $(this).attr('id').substr(7); 244 | $('tr.cg-' + idnum).toggle(); 245 | if (src.substr(-9) === 'minus.png') 246 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); 247 | else 248 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); 249 | }).css('display', ''); 250 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { 251 | togglers.click(); 252 | } 253 | }, 254 | 255 | /** 256 | * helper function to hide the search marks again 257 | */ 258 | hideSearchWords : function() { 259 | $('#searchbox .highlight-link').fadeOut(300); 260 | $('span.highlighted').removeClass('highlighted'); 261 | }, 262 | 263 | /** 264 | * make the url absolute 265 | */ 266 | makeURL : function(relativeURL) { 267 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; 268 | }, 269 | 270 | /** 271 | * get the current relative url 272 | */ 273 | getCurrentURL : function() { 274 | var path = document.location.pathname; 275 | var parts = path.split(/\//); 276 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { 277 | if (this === '..') 278 | parts.pop(); 279 | }); 280 | var url = parts.join('/'); 281 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1); 282 | }, 283 | 284 | initOnKeyListeners: function() { 285 | $(document).keyup(function(event) { 286 | var activeElementType = document.activeElement.tagName; 287 | // don't navigate when in search box or textarea 288 | if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { 289 | switch (event.keyCode) { 290 | case 37: // left 291 | var prevHref = $('link[rel="prev"]').prop('href'); 292 | if (prevHref) { 293 | window.location.href = prevHref; 294 | return false; 295 | } 296 | case 39: // right 297 | var nextHref = $('link[rel="next"]').prop('href'); 298 | if (nextHref) { 299 | window.location.href = nextHref; 300 | return false; 301 | } 302 | } 303 | } 304 | }); 305 | } 306 | }; 307 | 308 | // quick alias for translations 309 | _ = Documentation.gettext; 310 | 311 | $(document).ready(function() { 312 | Documentation.init(); 313 | }); -------------------------------------------------------------------------------- /docs/html/_static/underscore.js: -------------------------------------------------------------------------------- 1 | // Underscore.js 1.3.1 2 | // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. 3 | // Underscore is freely distributable under the MIT license. 4 | // Portions of Underscore are inspired or borrowed from Prototype, 5 | // Oliver Steele's Functional, and John Resig's Micro-Templating. 6 | // For all details and documentation: 7 | // http://documentcloud.github.com/underscore 8 | (function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source== 9 | c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c, 10 | h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each= 11 | b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;eModule that handles like features
158 |app.like.check_link(browser, link, dont_like, ignore_if_contains, username, like_by_followers_upper_limit, like_by_followers_lower_limit, logger)¶Check if the Post is Valid/Exists
162 |app.like.get_links_for_location(browser, location, amount, logger, media=None, skip_top_posts=True)¶Fetches the number of links specified by amount and returns a list of links
168 |app.like.get_links_for_tag(browser, tag, amount, logger, media=None, skip_top_posts=True)¶Fetches the number of links specified by amount and returns a list of links
174 |app.like.get_links_for_username(browser, username, amount, logger, randomize=False, media=None)¶Fetches the number of links specified by amount and returns a list of links
180 |app.like.get_links_from_feed(browser, amount, num_of_search, logger)¶Fetches random number of links from feed and returns a list of links
186 || browser: | web driver | 193 |
|---|---|
| amount: | ? | 195 |
| num_of_search: | ? | 197 |
| logger: | library to log actions | 199 |
Gets all the tags of the given description in the url
212 |app.like.like_image(account_id, browser, profile, blacklist, logger)¶Likes opened image
218 || account_id: | Instagram Account Id | 225 |
|---|---|
| browser: | web driver | 227 |
| username: | our username | 229 |
| blacklist: | blacklist setup | 231 |
| logger: | library to log actions | 233 |
When we don`t know where to place a feature, this is mamas house
157 |app.util.formatNumber(number)¶Receive an unformated number an return a formated number
161 |app.util.get_account_id(username)¶Return the related account id
167 || username: | username to be consulted | 174 |
|---|
app.util.get_active_users(browser, username, posts, logger)¶Returns a list with users who liked the latest posts
185 || browser: | web driver | 192 |
|---|---|
| username: | our username | 194 |
| posts: | amount of posts to be verified | 196 |
| logger: | library to log actions | 198 |
app.util.is_account_active(browser, profile)¶Check if it`s an active Instagram Account
211 || browser: | web driver | 218 |
|---|---|
| profile: | profile name to be checked | 220 |
app.util.scroll_bottom(browser, element, range_int)¶Instagram doesn`t load all content once, and we need to scroll the pages 233 | down to load more content
234 || browser: | web driver | 241 |
|---|---|
| element: | web page element to be scrolled | 243 |
| rand_int: | calculates the scrolling limit | 245 |
app.util.update_activity(action=None)¶Record every Instagram server call (page load, content load, likes, 258 | comments, follows, unfollow).
259 |Note
261 |we need to reorganize this idea
262 |app.util.validate_username(browser, username, blacklist, like_by_followers_upper_limit, like_by_followers_lower_limit)¶Check if we can interact with the user
269 || browser: | web driver | 276 |
|---|---|
| username: | our username | 278 |
| blacklist: | blacklist setup | 280 |
| like_by_followers_upper_limit: | |
| <- | 283 ||
| like_by_followers_lower_limit: | |
| <- | 286 ||
Note
293 |are we using it ?
294 |app.blacklist.add_user_to_blacklist(account_id, browser, profile, blacklist, action, logger)¶Adds a profile to user blacklist campaign
161 || account_id: | account_id of the logged in username | 168 |
|---|---|
| browser: | web driver | 170 |
| profile: | profile to be added to blacklist campaign | 172 |
| blacklist: | blacklist setup | 174 |
| action: | action done by the user (like or follow) | 176 |
| logger: | library to log actions. | 178 |
app.blacklist.get_followed_by_campaign(campaign)¶Get all followed users from a blacklist campaign
189 || campaign: | blacklist campaign name | 196 |
|---|
app.blacklist.get_profiles_from_blacklist_campaign(blacklist, username, logger)¶Returns all users from a blacklist campaign
209 || blacklist: | blacklist setup | 216 |
|---|---|
| account_id: | username account id | 218 |
| logger: | library to log actions | 220 |
app.blacklist.is_user_in_followed_blacklist(profile, blacklist)¶Check if profile is in blacklist (followed by the blacklist campaign)
233 || profile: | profile to be checked | 240 |
|---|---|
| blacklist: | blacklist setup | 242 |
app.blacklist.is_user_in_liked_blacklist(profile, blacklist)¶Check if profile is in blacklist (liked by the blacklist campaign)
255 || profile: | profile to be checked | 262 |
|---|---|
| blacklist: | blacklist setup | 264 |
app.blacklist.mark_as_unfollowed_by_blacklist_campaign(profile, campaign, logger)¶Update database marking the profile as unfollowed by the blacklist campaign
277 || profile: | profile to by marked as unfollowed by blacklist campaign | 284 |
|---|---|
| campaign: | black campaign name | 286 |
| logger: | library to log actions | 288 |