summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-05-10 17:40:30 +0200
committerGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-05-10 17:40:30 +0200
commit816f959156a4d44a4b7444c27706c617c76ef5f0 (patch)
treecd3a7f9e2451020552a199cd73d7051be0d05c49
parentMerge pull request #1409 from ktrhn/master (diff)
downloadpyload-816f959156a4d44a4b7444c27706c617c76ef5f0.tar.xz
Remove old CLI
-rw-r--r--README.md11
-rw-r--r--docs/docs.conf2
-rw-r--r--locale/crowdin.yaml3
-rw-r--r--locale/pavement.py9
-rw-r--r--pyload/cli/AddPackage.py52
-rw-r--r--pyload/cli/Handler.py40
-rw-r--r--pyload/cli/ManageFiles.py178
-rw-r--r--pyload/cli/__init__.py583
-rwxr-xr-xsetup.py7
9 files changed, 4 insertions, 881 deletions
diff --git a/README.md b/README.md
index f01737341..4dc6fc593 100644
--- a/README.md
+++ b/README.md
@@ -162,17 +162,6 @@ You can get a list of accepted arguments typing:
python pyload.py -h
-### Command Line Interface ###
-
-Run:
-
- python pyload-cli.py -l
-
-You can get a list of accepted arguments typing:
-
- python pyload-cli.py -h
-
-
Development
-----------
diff --git a/docs/docs.conf b/docs/docs.conf
index c5e619fd6..7eb8ee005 100644
--- a/docs/docs.conf
+++ b/docs/docs.conf
@@ -4,7 +4,7 @@
[epydoc]
-modules: pyload.py, pyload-cli.py, pyload
+modules: pyload.py, pyload
output: html
target: docs
docformat: restructuredtext
diff --git a/locale/crowdin.yaml b/locale/crowdin.yaml
index a3bd3a3e2..ae932054f 100644
--- a/locale/crowdin.yaml
+++ b/locale/crowdin.yaml
@@ -8,8 +8,5 @@ files:
source: 'pyLoad/*.pot'
translation: 'pyLoad/%two_letters_code%/LC_MESSAGES/%file_name%.po'
-
- source: 'pyLoad/cli.pot'
- translation: 'pyLoad/%two_letters_code%/LC_MESSAGES/pyLoadCli.po'
- -
source: 'pyLoad/core.pot'
translation: 'pyLoad/%two_letters_code%/LC_MESSAGES/pyLoad.po'
diff --git a/locale/pavement.py b/locale/pavement.py
index c2820fade..02aa110b5 100644
--- a/locale/pavement.py
+++ b/locale/pavement.py
@@ -55,11 +55,7 @@ setup(
'RSS plugins': ['feedparser'],
},
# setup_requires=["setuptools_hg"],
- entry_points={
- 'console_scripts': [
- 'pyLoadCore = pyLoadCore:main',
- 'pyLoadCli = pyLoadCli:main'
- ]},
+ entry_points={'console_scripts': ['pyLoadCore = pyLoadCore:main']},
zip_safe=False,
classifiers=[
"Development Status :: 5 - Production/Stable",
@@ -218,11 +214,10 @@ def compile_js():
def generate_locale():
""" Generates localization files """
- EXCLUDE = ["BeautifulSoup.py", "pyload/cli", "web/locale", "web/ajax", "web/cnl", "web/pyload",
+ EXCLUDE = ["BeautifulSoup.py", "web/locale", "web/ajax", "web/cnl", "web/pyload",
"setup.py"]
makepot("core", path("pyload"), EXCLUDE, "./pyload.py\n")
- makepot("cli", path("pyload") / "cli", [], includes="./pyload-cli.py\n")
makepot("setup", "", [], includes="./pyload/setup.py\n")
EXCLUDE = ["ServerThread.py", "web/media/default"]
diff --git a/pyload/cli/AddPackage.py b/pyload/cli/AddPackage.py
deleted file mode 100644
index 3a9471cbe..000000000
--- a/pyload/cli/AddPackage.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# @author: RaNaN
-
-from pyload.Cli.Handler import Handler
-from pyload.utils.printer import *
-
-
-class AddPackage(Handler):
- """ let the user add packages """
-
- def init(self):
- self.name = ""
- self.urls = []
-
-
- def onEnter(self, inp):
- if inp == "0":
- self.cli.reset()
-
- if not self.name:
- self.name = inp
- self.setInput()
- elif inp == "END":
- # add package
- self.client.addPackage(self.name, self.urls, 1)
- self.cli.reset()
- else:
- if inp.strip():
- self.urls.append(inp)
- self.setInput()
-
-
- def renderBody(self, line):
- println(line, white(_("Add Package:")))
- println(line + 1, "")
- line += 2
-
- if not self.name:
- println(line, _("Enter a name for the new package"))
- println(line + 1, "")
- line += 2
- else:
- println(line, _("Package: %s") % self.name)
- println(line + 1, _("Parse the links you want to add."))
- println(line + 2, _("Type %s when done.") % mag("END"))
- println(line + 3, _("Links added: ") + mag(len(self.urls)))
- line += 4
-
- println(line, "")
- println(line + 1, mag("0.") + _(" back to main menu"))
-
- return line + 2
diff --git a/pyload/cli/Handler.py b/pyload/cli/Handler.py
deleted file mode 100644
index 33e5dd8e6..000000000
--- a/pyload/cli/Handler.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-# @author: RaNaN
-
-class Handler(object):
-
- def __init__(self, cli):
- self.cli = cli
- self.init()
-
- client = property(lambda self: self.cli.client)
- input = property(lambda self: self.cli.input)
-
-
- def init(self):
- pass
-
-
- def onChar(self, char):
- pass
-
-
- def onBackSpace(self):
- pass
-
-
- def onEnter(self, inp):
- pass
-
-
- def setInput(self, inp=""):
- self.cli.setInput(inp)
-
-
- def backspace(self):
- self.cli.setInput(self.input[:-1])
-
-
- def renderBody(self, line):
- """ gets the line where to render output and should return the line number below its content """
- return line + 1
diff --git a/pyload/cli/ManageFiles.py b/pyload/cli/ManageFiles.py
deleted file mode 100644
index 017529852..000000000
--- a/pyload/cli/ManageFiles.py
+++ /dev/null
@@ -1,178 +0,0 @@
-# -*- coding: utf-8 -*-
-# @author: RaNaN
-
-from itertools import islice
-from time import time
-
-from pyload.Cli.Handler import Handler
-from pyload.utils.printer import *
-
-from pyload.api import Destination, PackageData
-
-
-class ManageFiles(Handler):
- """ possibility to manage queue/collector """
-
- def init(self):
- self.target = Destination.Queue
- self.pos = 0 #: position in queue
- self.package = -1 #: choosen package
- self.mode = "" #: move/delete/restart
-
- self.cache = None
- self.links = None
- self.time = 0
-
-
- def onChar(self, char):
- if char in ("m", "d", "r"):
- self.mode = char
- self.setInput()
- elif char == "p":
- self.pos = max(0, self.pos - 5)
- self.backspace()
- elif char == "n":
- self.pos += 5
- self.backspace()
-
-
- def onBackSpace(self):
- if not self.input and self.mode:
- self.mode = ""
- if not self.input and self.package > -1:
- self.package = -1
-
-
- def onEnter(self, input):
- if input == "0":
- self.cli.reset()
- elif self.package < 0 and self.mode:
- # mode select
- packs = self.parseInput(input)
- if self.mode == "m":
- [self.client.movePackage((self.target + 1) % 2, x) for x in packs]
- elif self.mode == "d":
- self.client.deletePackages(packs)
- elif self.mode == "r":
- [self.client.restartPackage(x) for x in packs]
-
- elif self.mode:
- # edit links
- links = self.parseInput(input, False)
-
- if self.mode == "d":
- self.client.deleteFiles(links)
- elif self.mode == "r":
- map(self.client.restartFile, links)
-
- else:
- # look into package
- try:
- self.package = int(input)
- except Exception:
- pass
-
- self.cache = None
- self.links = None
- self.pos = 0
- self.mode = ""
- self.setInput()
-
-
- def renderBody(self, line):
- if self.package < 0:
- println(line, white(_("Manage Packages:")))
- else:
- println(line, white((_("Manage Links:"))))
- line += 1
-
- if self.mode:
- if self.mode == "m":
- println(line, _("What do you want to move?"))
- elif self.mode == "d":
- println(line, _("What do you want to delete?"))
- elif self.mode == "r":
- println(line, _("What do you want to restart?"))
-
- println(line + 1, "Enter single number, comma seperated numbers or ranges. eg. 1, 2, 3 or 1-3.")
- line += 2
- else:
- println(line, _("Choose what yout want to do or enter package number."))
- println(line + 1, ("%s - %%s, %s - %%s, %s - %%s" % (mag("d"), mag("m"), mag("r"))) % (
- _("delete"), _("move"), _("restart")))
- line += 2
-
- if self.package < 0:
- # print package info
- pack = self.getPackages()
- i = 0
- for value in islice(pack, self.pos, self.pos + 5):
- try:
- println(line, mag(str(value.pid)) + ": " + value.name)
- line += 1
- i += 1
- except Exception:
- pass
- for _i in xrange(5 - i):
- println(line, "")
- line += 1
- else:
- # print links info
- pack = self.getLinks()
- i = 0
- for value in islice(pack.links, self.pos, self.pos + 5):
- try:
- println(line, mag(value.fid) + ": %s | %s | %s" % (
- value.name, value.statusmsg, value.plugin))
- line += 1
- i += 1
- except Exception, e:
- pass
- for _i in xrange(5 - i):
- println(line, "")
- line += 1
-
- println(line, mag("p") + _(" - previous") + " | " + mag("n") + _(" - next"))
- println(line + 1, mag("0.") + _(" back to main menu"))
- return line + 2
-
-
- def getPackages(self):
- if self.cache and self.time + 2 < time():
- return self.cache
-
- if self.target == Destination.Queue:
- data = self.client.getQueue()
- else:
- data = self.client.getCollector()
-
- self.cache = data
- self.time = time()
-
- return data
-
-
- def getLinks(self):
- if self.links and self.time + 1 < time():
- return self.links
- try:
- data = self.client.getPackageData(self.package)
- except Exception:
- data = PackageData(links=[])
- self.links = data
- self.time = time()
- return data
-
-
- def parseInput(self, inp, package=True):
- inp = inp.strip()
- if "-" in inp:
- l, _, h = inp.partition("-")
- r = xrange(int(l), int(h) + 1)
-
- if package:
- return [p.pid for p in self.cache if p.pid in r]
- return [l.lid for l in self.links.links if l.lid in r]
-
- else:
- return [int(x) for x in inp.split(",")]
diff --git a/pyload/cli/__init__.py b/pyload/cli/__init__.py
deleted file mode 100644
index 3449109ba..000000000
--- a/pyload/cli/__init__.py
+++ /dev/null
@@ -1,583 +0,0 @@
-# -*- coding: utf-8 -*-
-# @author: RaNaN
-
-from __future__ import with_statement
-
-import os
-import sys
-import threading
-import traceback
-
-import pyload.utils.pylgettext as gettext
-
-from codecs import getwriter
-from getopt import GetoptError, getopt
-from os import _exit
-from os.path import join, exists, basename
-from sys import exit
-from time import sleep
-
-from Getch import Getch
-from rename_process import renameProcess
-
-from pyload.api import Destination
-from pyload.Cli.AddPackage import AddPackage
-from pyload.Cli.ManageFiles import ManageFiles
-from pyload.config.Parser import ConfigParser
-from pyload.remote.thriftbackend.ThriftClient import ThriftClient, NoConnection, NoSSL, WrongLogin, ConnectionClosed
-from pyload.utils import formatSize, decode
-from pyload.utils.printer import *
-
-
-class Cli(object):
-
- def __init__(self, client, command):
- self.client = client
- self.command = command
-
- if not self.command:
- renameProcess('pyload-cli')
- self.getch = Getch()
- self.input = ""
- self.inputline = 0
- self.lastLowestLine = 0
- self.menuline = 0
-
- self.lock = threading.Lock()
-
- # processor funcions, these will be changed dynamically depending on control flow
- self.headerHandler = self #: the download status
- self.bodyHandler = self #: the menu section
- self.inputHandler = self
-
- os.system("clear")
- println(1, blue("py") + yellow("Load") + white(_(" Command Line Interface")))
- println(2, "")
-
- self.thread = RefreshThread(self)
- self.thread.start()
-
- self.start()
- else:
- self.processCommand()
-
-
- def reset(self):
- """ reset to initial main menu """
- self.input = ""
- self.headerHandler = self.bodyHandler = self.inputHandler = self
-
-
- def start(self):
- """ main loop. handle input """
- while True:
- # inp = raw_input()
- inp = self.getch.impl()
- if ord(inp) == 3:
- os.system("clear")
- sys.exit() #: ctrl + c
- elif ord(inp) == 13: #: enter
- try:
- self.lock.acquire()
- self.inputHandler.onEnter(self.input)
-
- except Exception, e:
- println(2, red(e))
- finally:
- self.lock.release()
-
- elif ord(inp) == 127:
- self.input = self.input[:-1] #: backspace
- try:
- self.lock.acquire()
- self.inputHandler.onBackSpace()
- finally:
- self.lock.release()
-
- elif ord(inp) == 27: #: ugly symbol
- pass
- else:
- self.input += inp
- try:
- self.lock.acquire()
- self.inputHandler.onChar(inp)
- finally:
- self.lock.release()
-
- self.inputline = self.bodyHandler.renderBody(self.menuline)
- self.renderFooter(self.inputline)
-
-
- def refresh(self):
- """refresh screen"""
-
- println(1, blue("py") + yellow("Load") + white(_(" Command Line Interface")))
- println(2, "")
-
- self.lock.acquire()
-
- self.menuline = self.headerHandler.renderHeader(3) + 1
- println(self.menuline - 1, "")
- self.inputline = self.bodyHandler.renderBody(self.menuline)
- self.renderFooter(self.inputline)
-
- self.lock.release()
-
-
- def setInput(self, string=""):
- self.input = string
-
-
- def setHandler(self, klass):
- # create new handler with reference to cli
- self.bodyHandler = self.inputHandler = klass(self)
- self.input = ""
-
-
- def renderHeader(self, line):
- """ prints download status """
- # print updated information
- # print "\033[J" #: clear screen
- # self.println(1, blue("py") + yellow("Load") + white(_(" Command Line Interface")))
- # self.println(2, "")
- # self.println(3, white(_("%s Downloads:") % (len(data))))
-
- data = self.client.statusDownloads()
- speed = 0
-
- println(line, white(_("%s Downloads:") % (len(data))))
- line += 1
-
- for download in data:
- if download.status == 12: #: downloading
- percent = download.percent
- z = percent / 4
- speed += download.speed
- println(line, cyan(download.name))
- line += 1
- println(line,
- blue("[") + yellow(z * "#" + (25 - z) * " ") + blue("] ") + green(str(percent) + "%") + _(
- " Speed: ") + green(formatSize(download.speed) + "/s") + _(" Size: ") + green(
- download.format_size) + _(" Finished in: ") + green(download.format_eta) + _(
- " ID: ") + green(download.fid))
- line += 1
- if download.status == 5:
- println(line, cyan(download.name))
- line += 1
- println(line, _("waiting: ") + green(download.format_wait))
- line += 1
-
- println(line, "")
- line += 1
- status = self.client.statusServer()
- if status.pause:
- paused = _("Status:") + " " + red(_("paused"))
- else:
- paused = _("Status:") + " " + red(_("running"))
-
- println(line, "%s %s: %s %s: %s %s: %s" % (
- paused, _("total Speed"), red(formatSize(speed) + "/s"), _("Files in queue"), red(
- status.queue), _("Total"), red(status.total)))
-
- return line + 1
-
-
- def renderBody(self, line):
- """ prints initial menu """
- println(line, white(_("Menu:")))
- println(line + 1, "")
- println(line + 2, mag("1.") + _(" Add Links"))
- println(line + 3, mag("2.") + _(" Manage Queue"))
- println(line + 4, mag("3.") + _(" Manage Collector"))
- println(line + 5, mag("4.") + _(" (Un)Pause Server"))
- println(line + 6, mag("5.") + _(" Kill Server"))
- println(line + 7, mag("6.") + _(" Quit"))
-
- return line + 8
-
-
- def renderFooter(self, line):
- """ prints out the input line with input """
- println(line, "")
- line += 1
-
- println(line, white(" Input: ") + decode(self.input))
-
- # clear old output
- if line < self.lastLowestLine:
- for i in xrange(line + 1, self.lastLowestLine + 1):
- println(i, "")
-
- self.lastLowestLine = line
-
- # set cursor to position
- print "\033[" + str(self.inputline) + ";0H"
-
-
- def onChar(self, char):
- """ default no special handling for single chars """
- if char == "1":
- self.setHandler(AddPackage)
- elif char == "2":
- self.setHandler(ManageFiles)
- elif char == "3":
- self.setHandler(ManageFiles)
- self.bodyHandler.target = Destination.Collector
- elif char == "4":
- self.client.togglePause()
- self.setInput()
- elif char == "5":
- self.client.kill()
- self.client.close()
- sys.exit()
- elif char == "6":
- os.system('clear')
- sys.exit()
-
-
- def onEnter(self, inp):
- pass
-
-
- def onBackSpace(self):
- pass
-
-
- def processCommand(self):
- command = self.command[0]
- args = []
- if len(self.command) > 1:
- args = self.command[1:]
-
- if command == "status":
- files = self.client.statusDownloads()
-
- if not files:
- print "No downloads running."
-
- for download in files:
- if download.status == 12: #: downloading
- print print_status(download)
- print "\tDownloading: %s @ %s/s\t %s (%s%%)" % (
- download.format_eta, formatSize(download.speed), formatSize(download.size - download.bleft),
- download.percent)
- elif download.status == 5:
- print print_status(download)
- print "\tWaiting: %s" % download.format_wait
- else:
- print print_status(download)
-
- elif command == "queue":
- print_packages(self.client.getQueueData())
-
- elif command == "collector":
- print_packages(self.client.getCollectorData())
-
- elif command == "add":
- if len(args) < 2:
- print _("Please use this syntax: add <Package name> <link> <link2> ...")
- return
-
- self.client.addPackage(args[0], args[1:], Destination.Queue)
-
- elif command == "add_coll":
- if len(args) < 2:
- print _("Please use this syntax: add <Package name> <link> <link2> ...")
- return
-
- self.client.addPackage(args[0], args[1:], Destination.Collector)
-
- elif command == "del_file":
- self.client.deleteFiles([int(x) for x in args])
- print "Files deleted."
-
- elif command == "del_package":
- self.client.deletePackages([int(x) for x in args])
- print "Packages deleted."
-
- elif command == "move":
- for pid in args:
- pack = self.client.getPackageInfo(int(pid))
- self.client.movePackage((pack.dest + 1) % 2, pack.pid)
-
- elif command == "check":
- print _("Checking %d links:") % len(args)
- print
- rid = self.client.checkOnlineStatus(args).rid
- self.printOnlineCheck(self.client, rid)
-
- elif command == "check_container":
- path = args[0]
- if not exists(join(owd, path)):
- print _("File does not exists.")
- return
-
- with open(join(owd, path), "rb") as f:
- content = f.read()
-
- rid = self.client.checkOnlineStatusContainer([], basename(f.name), content).rid
- self.printOnlineCheck(self.client, rid)
-
- elif command == "pause":
- self.client.pause()
-
- elif command == "unpause":
- self.client.unpause()
-
- elif command == "toggle":
- self.client.togglePause()
-
- elif command == "kill":
- self.client.kill()
- elif command == "restart_file":
- for x in args:
- self.client.restartFile(int(x))
- print "Files restarted."
- elif command == "restart_package":
- for pid in args:
- self.client.restartPackage(int(pid))
- print "Packages restarted."
-
- else:
- print_commands()
-
-
- def printOnlineCheck(self, client, rid):
- while True:
- sleep(1)
- result = client.pollResults(rid)
- for url, status in result.data.iteritems():
- if status.status == 2:
- check = "Online"
- elif status.status == 1:
- check = "Offline"
- else:
- check = "Unknown"
-
- print "%-45s %-12s\t %-15s\t %s" % (status.name, formatSize(status.size), status.plugin, check)
-
- if result.rid == -1:
- break
-
-
-class RefreshThread(threading.Thread):
-
- def __init__(self, cli):
- threading.Thread.__init__(self)
- self.setDaemon(True)
- self.cli = cli
-
-
- def run(self):
- while True:
- sleep(1)
- try:
- self.cli.refresh()
- except ConnectionClosed:
- os.system("clear")
- print _("pyLoad was terminated")
- _exit(0)
- except Exception, e:
- println(2, red(str(e)))
- self.cli.reset()
- traceback.print_exc()
-
-
-def print_help(config):
- print
- print "pyLoad CLI Copyright (c) 2008-2015 the pyLoad Team"
- print
- print "Usage: [python] pyload-cli.py [options] [command]"
- print
- print "<Commands>"
- print "See pyload-cli.py -c for a complete listing."
- print
- print "<Options>"
- print " -i, --interactive", " Start in interactive mode"
- print
- print " -u, --username=", " " * 2, "Specify Username"
- print " --pw=<password>", " " * 2, "Password"
- print " -a, --address=", " " * 3, "Specify address (current=%s)" % config['addr']
- print " -p, --port", " " * 7, "Specify port (current=%s)" % config['port']
- print
- print " -l, --language", " " * 3, "Set user interface language (current=%s)" % config['language']
- print " -h, --help", " " * 7, "Display this help screen"
- print " -c, --commands", " " * 3, "List all available commands"
- print
-
-
-def print_packages(data):
- for pack in data:
- print "Package %s (#%s):" % (pack.name, pack.pid)
- for download in pack.links:
- print "\t" + print_file(download)
- print
-
-
-def print_file(download):
- return "#%(id)-6d %(name)-30s %(statusmsg)-10s %(plugin)-8s" % {
- "id": download.fid,
- "name": download.name,
- "statusmsg": download.statusmsg,
- "plugin": download.plugin
- }
-
-
-def print_status(download):
- return "#%(id)-6s %(name)-40s Status: %(statusmsg)-10s Size: %(size)s" % {
- "id": download.fid,
- "name": download.name,
- "statusmsg": download.statusmsg,
- "size": download.format_size
- }
-
-
-def print_commands():
- commands = [("status", _("Prints server status")),
- ("queue", _("Prints downloads in queue")),
- ("collector", _("Prints downloads in collector")),
- ("add <name> <link1> <link2>...", _("Adds package to queue")),
- ("add_coll <name> <link1> <link2>...", _("Adds package to collector")),
- ("del_file <fid> <fid2>...", _("Delete Files from Queue/Collector")),
- ("del_package <pid> <pid2>...", _("Delete Packages from Queue/Collector")),
- ("move <pid> <pid2>...", _("Move Packages from Queue to Collector or vice versa")),
- ("restart_file <fid> <fid2>...", _("Restart files")),
- ("restart_package <pid> <pid2>...", _("Restart packages")),
- ("check <container|url> ...", _("Check online status, works with local container")),
- ("check_container path", _("Checks online status of a container file")),
- ("pause", _("Pause the server")),
- ("unpause", _("continue downloads")),
- ("toggle", _("Toggle pause/unpause")),
- ("kill", _("kill server")), ]
-
- print _("List of commands:")
- print
- for c in commands:
- print "%-35s %s" % c
-
-
-def writeConfig(opts):
- try:
- with open(join(homedir, ".pyload-cli"), "w") as cfgfile:
- cfgfile.write("[cli]")
- for opt in opts:
- cfgfile.write("%s=%s\n" % (opt, opts[opt]))
- except Exception:
- print _("Couldn't write user config file")
-
-
-def main():
- config = {"addr": "127.0.0.1", "port": "7227", "language": "en"}
- try:
- config['language'] = os.environ['LANG'][0:2]
- except Exception:
- pass
-
- if (not exists(join(pypath, "locale", config['language']))) or config['language'] == "":
- config['language'] = "en"
-
- configFile = ConfigParser.ConfigParser()
- configFile.read(join(homedir, ".pyload-cli"))
-
- if configFile.has_section("cli"):
- for opt in configFile.items("cli"):
- config[opt[0]] = opt[1]
-
- gettext.setpaths([join(os.sep, "usr", "share", "pyload", "locale"), None])
- translation = gettext.translation("Cli", join(pypath, "locale"),
- languages=[config['language'], "en"], fallback=True)
- translation.install(unicode=True)
-
- interactive = False
- command = None
- username = ""
- password = ""
-
- shortOptions = 'iu:p:a:hcl:'
- longOptions = ['interactive', "username=", "pw=", "address=", "port=", "help", "commands", "language="]
-
- try:
- opts, extraparams = getopt(sys.argv[1:], shortOptions, longOptions)
- for option, params in opts:
- if option in ("-i", "--interactive"):
- interactive = True
- elif option in ("-u", "--username"):
- username = params
- elif option in ("-a", "--address"):
- config['addr'] = params
- elif option in ("-p", "--port"):
- config['port'] = params
- elif option in ("-l", "--language"):
- config['language'] = params
- gettext.setpaths([join(os.sep, "usr", "share", "pyload", "locale"), None])
- translation = gettext.translation("Cli", join(pypath, "locale"),
- languages=[config['language'], "en"], fallback=True)
- translation.install(unicode=True)
- elif option in ("-h", "--help"):
- print_help(config)
- exit()
- elif option in ("--pw"):
- password = params
- elif option in ("-c", "--comands"):
- print_commands()
- exit()
-
- except GetoptError:
- print 'Unknown Argument(s) "%s"' % " ".join(sys.argv[1:])
- print_help(config)
- exit()
-
- if len(extraparams) >= 1:
- command = extraparams
-
- client = False
-
- if interactive:
- try:
- client = ThriftClient(config['addr'], int(config['port']), username, password)
- except WrongLogin:
- pass
- except NoSSL:
- print _("You need py-openssl to connect to this pyLoad Core.")
- exit()
- except NoConnection:
- config['addr'] = False
- config['port'] = False
-
- if not client:
- if not config['addr']: config['addr'] = raw_input(_("Address: "))
- if not config['port']: config['port'] = raw_input(_("Port: "))
- if not username: username = raw_input(_("Username: "))
- if not password:
- from getpass import getpass
-
- password = getpass(_("Password: "))
-
- try:
- client = ThriftClient(config['addr'], int(config['port']), username, password)
- except WrongLogin:
- print _("Login data is wrong.")
- except NoConnection:
- print _("Could not establish connection to %(addr)s:%(port)s." % {"addr": config['addr'],
- "port": config['port']})
-
- else:
- try:
- client = ThriftClient(config['addr'], int(config['port']), username, password)
- except WrongLogin:
- print _("Login data is wrong.")
- except NoConnection:
- print _("Could not establish connection to %(addr)s:%(port)s." % {"addr": config['addr'],
- "port": config['port']})
- except NoSSL:
- print _("You need py-openssl to connect to this pyLoad core.")
-
- if interactive and command: print _("Interactive mode ignored since you passed some commands.")
-
- if client:
- writeConfig(config)
- cli = Cli(client, command)
-
-
-if __name__ == "__main__":
- main()
diff --git a/setup.py b/setup.py
index 3f239c68e..ae6c59fb2 100755
--- a/setup.py
+++ b/setup.py
@@ -80,12 +80,7 @@ setup(
# tests_require=['nose', 'websocket-client >= 0.8.0', 'requests >= 1.2.2'],
- entry_points={
- 'console_scripts': [
- 'pyload = pyload.Core:main',
- 'pyload-cli = pyload.Cli:main'
- ]
- },
+ entry_points={'console_scripts': ['pyload = pyload.Core:main']},
zip_safe=False,