Skip to content

[fix] Possible crashes on generating random URLs on Python3#1552

Merged
gazpachoking merged 1 commit intoFlexget:developfrom
kolyagora:ascii_letters
Dec 12, 2016
Merged

[fix] Possible crashes on generating random URLs on Python3#1552
gazpachoking merged 1 commit intoFlexget:developfrom
kolyagora:ascii_letters

Conversation

@kolyagora
Copy link
Copy Markdown
Contributor

Motivation for changes:

Flexget crashes on generating random URLs, for example on injecting an entry, using Python3:

[/opt/local/flexget-test] # flexget inject FooBar --learn
Traceback (most recent call last):
  File "/opt/bin/flexget", line 11, in <module>
    sys.exit(main())
  File "/opt/lib/python3.5/site-packages/flexget/__init__.py", line 42, in main
    manager.start()
  File "/opt/lib/python3.5/site-packages/flexget/manager.py", line 326, in start
    self.handle_cli()
  File "/opt/lib/python3.5/site-packages/flexget/manager.py", line 353, in handle_cli
    options.cli_command_callback(self, command_options)
  File "/opt/lib/python3.5/site-packages/flexget/plugins/cli/inject.py", line 38, in do_cli
    entry['url'] = 'http://localhost/inject/%s' % ''.join(random.sample(string.letters + string.digits, 30))
AttributeError: module 'string' has no attribute 'letters'

Detailed changes:

Python3 standard library module string doesn't have attribute letters, ascii_letters is used instead.

@liiight
Copy link
Copy Markdown
Member

liiight commented Dec 12, 2016

Is that py2 compatible?

@kolyagora
Copy link
Copy Markdown
Contributor Author

kolyagora commented Dec 12, 2016

It works for me and should do for everyone due to presence of string.ascii_letters in Python2 too.

tasks:
  TEST:
    accept_all: yes
(venv2) D:\devel\projects\flexget\Flexget>python -V
Python 2.7.12

(venv2) D:\devel\projects\flexget\Flexget>flexget --test inject FooBar --dump
2016-12-12 12:25 INFO     manager                       Test mode, creating a copy from database ...
2016-12-12 12:25 INFO     manager                       Test database created
2016-12-12 12:25 VERBOSE  task_queue                    There are 1 tasks to execute. Shutdown will commence when they have completed.
2016-12-12 12:25 VERBOSE  task          TEST            ACCEPTED: `FooBar` by accept_all plugin
2016-12-12 12:25 VERBOSE  details       TEST            Summary - Accepted: 1 (Rejected: 0 Undecided: 0 Failed: 0)
2016-12-12 12:25 WARNING  task          TEST            Task doesn't have any output plugins, you should add (at least) one!
-- Accepted: ---------------------------
title            : FooBar
url              : http://localhost/inject/b2fvJjRmkO5I8361AD0SzlcLV4yinu
original_url     : http://localhost/inject/b2fvJjRmkO5I8361AD0SzlcLV4yinu
quality          : <LazyField - value will be determined when it is accessed>
task             : TEST

2016-12-12 12:25 INFO     manager                       Removed test database

@gazpachoking gazpachoking merged commit 83fec8b into Flexget:develop Dec 12, 2016
@gazpachoking
Copy link
Copy Markdown
Member

Looks good to me, thanks!

@kolyagora kolyagora deleted the ascii_letters branch December 13, 2016 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants