Alexander Graf
5adbee2273
add LICENSE and README.md
2016-07-28 17:24:38 +02:00
André Koch-Kramer
e464787772
Implementation of gathering followees functionality
...
usage: get_followees(login, session)
2016-07-28 15:55:19 +02:00
André Koch-Kramer
b0a6677c76
Update X-CSRFToken header when loading session
2016-07-28 15:52:28 +02:00
Alexander Graf
bd2514fcd5
Have default filename argument {load,save}_session
2016-07-28 15:41:33 +02:00
Alexander Graf
c69214536a
Encode username in default session file name
...
Fixes #7 .
2016-07-26 17:36:21 +02:00
Alexander Graf
a99d1875e5
Also save session when interrupted by user
...
Fixes #8 .
2016-07-26 17:03:32 +02:00
Alexander Graf
087a69ef7e
catch case of nonexisting session file
2016-07-26 17:03:20 +02:00
Alexander Graf
04821f5f76
print username in password prompt
2016-07-26 13:53:47 +02:00
Alexander Graf
283c05f47c
print warning when public profiles are downloaded when logged in
2016-07-26 13:53:32 +02:00
Alexander Graf
590f327fc8
easier understandable error messages
2016-07-26 13:53:01 +02:00
Alexander Graf
1f7fe4ca2f
load_session: don't double check if file can be opened
2016-07-26 13:52:05 +02:00
Alexander Graf
88219e4d01
Refactor exceptions
...
- Rename DownloaderException to InstaloaderException
- Introduce NonfatalException to make handling of these errors easier
- Avoid using of InstaloaderException directly
- Catch InstaloaderException and KeyboardInterrupt in main loop to exit
cleanly without stack trace
2016-07-26 10:57:29 +02:00
Alexander Graf
57bb10f6b8
Rename instagram.py to instaloader.py
2016-07-25 23:59:47 +02:00
Alexander Graf
06f0658947
fix minor bug caused during refactoring
2016-07-25 23:58:49 +02:00
Alexander Graf
115f1c9133
refactor get_session()
2016-07-25 23:43:41 +02:00
Alexander Graf
bd0505098e
Save only cookies instead of whole session object
2016-07-25 23:04:48 +02:00
Alexander Graf
220584c483
Refactor download() function
2016-07-25 22:27:23 +02:00
Alexander Graf
9aa2b91d52
Restructure get_session() error handling
2016-07-25 20:19:07 +02:00
Alexander Graf
c77d372e74
Disable pylint too-many-statements message in download()
2016-07-25 19:58:00 +02:00
Alexander Graf
6583388abf
Print message when session is loaded or saved
2016-07-25 19:54:24 +02:00
Alexander Graf
37a316583a
Have PrivateProfileNotFollowedException
2016-07-22 15:49:20 +02:00
Alexander Graf
b57ccc049b
Do not abort when login is required in quiet mode
...
An error message is still printed.
This fixes #2 .
2016-07-15 15:54:35 +02:00
Alexander Graf
51822eaa66
Create session file with 600 permissions
...
Fixes #4 .
Also, default session filename is "less" hardcoded.
2016-07-15 15:52:21 +02:00
André Koch-Kramer
e2d8c34eac
Don't download data json twice on private profiles
...
Fixes #6 .
2016-07-15 15:30:35 +02:00
André Koch-Kramer
bd190159f6
Always save session object when finishing download
...
Fix #1 .
2016-07-15 15:04:29 +02:00
Alexander Graf
08515ebfa2
Remove extraneous newlines
...
Upps, forgot that I was programming Python...
2016-07-12 21:10:48 +02:00
Alexander Graf
fde8396cb8
Do not abort when nonfatal errors occur
...
When a error like "user %s does not exist" occurs when downloading
multiple profiles, it now just prints a warning and continues instead
of aborting.
This fixes #2 .
2016-07-12 21:04:40 +02:00
Alexander Graf
a5ebf4d54c
Fix bug which André did not even want to believe
...
Er hatte Angst davor, in den Code zu schauen und hat einfach Dinge
behauptet.
Einfach mal in den scheiß Code schauen, für fünf Sekunden, und man
findet diesen scheiß Bug!!!
Jetzt behauptet der noch, das wär mein Bug weil es mein Return war, aber
als er dieses return username da einhackt hat, hätte er verdammt nochmal
sehen sollen, dass da NUR EIN KLEINES STÜCKCHEN weiter oben noch ein
Return ist!!!!
Das mit diesem return username sollte er ohnehin mal seriös
implementieren!
2016-07-11 21:25:44 +02:00
André Koch-Kramer
ac3791c0b8
More serious error msg in case of nonexisting user
2016-07-04 23:50:20 +02:00
André Koch-Kramer
349181c62d
Fix #1 .
...
... with dirty hack.
2016-07-04 23:44:14 +02:00
André Koch-Kramer
7c3ca67a20
Intensive refactoring to satisfy pylint
2016-06-27 16:49:00 +02:00
André Koch-Kramer
d7d4d59bab
Fix of trolling infinite loop
...
- used to infinite loop when given wrong credentials
- now unable to invoke time.sleep() with negative values
- const argument becomes obsolete without nargs
2016-06-27 15:34:26 +02:00
Alexander Graf
b1f4fd2788
Better pylint invocation
2016-06-26 13:13:59 +02:00
Alexander Graf
1543baf034
Parameters -l, -p, -f are no nargs='?' parameters
...
Argument to -l, -p, -f is not optional, it is required. Thus, nargs='?'
makes no sense.
2016-06-26 10:48:11 +02:00
Alexander Graf
42dc5a6026
Have --quiet argument
...
With --quiet activated, user interaction is disabled, i.e. no messages
are printed (except errors) and if login credentials are needed but not
given, instaloader fails.
2016-06-26 10:39:26 +02:00
Alexander Graf
de2399a6c8
Invoke pylint with all Python versions >= 3.3
...
We used to say in the project description text that we need Python>=3.2,
but I just noted that we use print() flush parameter, which was
introduced with python 3.3. Pylint would have warned that our code would
fail with Python 3.2.
2016-06-26 10:33:17 +02:00
Alexander Graf
357cabab49
forgot about requests dependency -.-
2016-06-26 10:10:44 +02:00
Alexander Graf
ac65f61024
try fixing travis-ci
2016-06-26 10:08:52 +02:00
Alexander Graf
381fa22deb
Allow specifying more than one target to download
2016-06-26 10:04:59 +02:00
Alexander Graf
18ad134f45
attempt to setup travis-ci to invoke pylint
2016-06-26 09:55:23 +02:00
Alexander Graf
beb860ed35
Fix minor code style issues
...
This makes instaloder proof against
$ pylint3 -r n -d \
bad-whitespace,bad-continuation,missing-docstring,anomalous-backslash-in-string,invalid-name,multiple-imports,dangerous-default-value \
--max-args=8 --max-locals=16 --max-branches=19 --max-nested-blocks=6 \
instagram
2016-06-26 09:43:02 +02:00
Alexander Graf
b3b8c22240
Update description in help text
2016-06-23 21:06:56 +02:00
André Koch-Kramer
4dedc86556
Ich hab mal ins Datenblatt geschaut.
...
Dabei hat sich herausgestellt, dass die regex hessischen Ursprungs war.
Außerdem hat Instagram wieder irgendwas an den URLs geändert.
2016-06-23 20:55:50 +02:00
André Koch-Kramer
e837c8ab5a
updated url parsing, fixed login functionality
...
- Instagram changed url style => accordingly updated parser
- successfully tested login and download of private profiles
- prevent echoing at password prompt
2016-06-22 14:00:22 +02:00
André Koch-Kramer
1c83e324b6
Changed User-Agent + download of private profiles
...
first attempt to implement login for downloading private profiles
2016-06-21 19:37:14 +02:00
Alexander Graf
d2ef625847
Have --fast-update
2016-06-17 21:40:55 +02:00
Alexander Graf
a3282ed7a5
Raise exceptions instead of printing Quatsch and then returning
2016-06-17 21:38:21 +02:00
André Koch-Kramer
0df54143e5
Initial commit
2016-06-15 12:42:08 +02:00