Commit graph libervia-backend/frontends/src/jp/base.py
Author SHA1 Message Date
Goffi
372f54ec2a bridge (D-Bus): bad design fixes:
- renamed outputed module to dbus_bridge (to avoid uppercase and conflict with dbus module)
    - class name is now Bridge for both frontend and core (make discovery/import more easy)
    - register renamed to register_method in core, and register_signal in frontend
2016-10-03 21:15:39 +02:00
Goffi
b8e62dd69c jp: --output option:
- new --output option can be added wich use_output. use_output can be True (in which case it wild default to C.OUTPUT_TEXT), or any of C.OUTPUT_TYPES (currently text, list and dict)
    - output change the output format mainly to make command result parsing more easy, but it can also be use to add fancy effects (like coloration)
    - outputs are added with plugins in the same way as commands (import of both is done in the same method)
    - in the command class, output need to be declared with use_output=C.OUTPUT_xxx, then the data only need to be processed with self.output(data)
    - outputs can have description (not used yet)
    - use_xxx argument handling has been refactored (minor refactoring) to be more generic
    - first outputs are "default", "json" (pretty printed) and "json_raw" (compact json)
    - the first command to use them is "profile list"
2016-04-23 23:10:03 +02:00
Goffi
bf45c1d91c jp: forgotten shebang fixes 2016-04-19 20:09:02 +02:00
Goffi
d0fb849398 jp: fixed traceback shown on a normal quit when a progression is finished 2016-03-21 19:44:16 +01:00
Goffi
4b941591c5 jp: moved KeyboardInterrupt catch one level higher, so it is also catched if the loop is not started 2016-03-05 18:00:56 +01:00
Goffi
5704cb4586 jp (blog/edit): editor arguments can now be specified on sat.conf, and default on are applied for known editors:
- vim and gvim will open content and metadata file in a splitted window
    - gvim use --nofork option
    - installed a workaround for shlex.split not handling unicode before Python 2.7.3
    - some fixes
2016-03-03 15:57:06 +01:00
Goffi
b67ee6bb47 jp (base): fixed Jp.quit when exit code is 0 2016-03-02 19:45:02 +01:00
Goffi
89f6fe8605 jp (base): refactored need_loop so it is set only when the command is run. It can now be set in __init__ methods of commands classes 2016-02-29 16:52:51 +01:00
Goffi
19bdc872c6 jp (base): added a CommandBase.start method which is called by run or connected, so subclasses can implement it (this is for simplicity sake, as it's not always clear if run or connected must be used) 2016-02-29 16:52:51 +01:00
Goffi
fea3296b89 jp (base): use need_connect attribue to detect if connection is needed instead of self.args.profile, as profile argument can be used by any command even if use_profile is False 2016-02-29 16:52:51 +01:00
souliane
c18f64f4fb frontends (jp): onActionNew displays xmlui message if no meta_type is defined and xmlui is defined 2016-02-04 11:48:37 +01:00
Goffi
d1fed06699 jp: an onProgressUpdate method is now called on each progress update, allowing to handle metadata 2016-01-23 20:04:28 +01:00
Goffi
348be27934 copyright update 2016-01-03 16:28:30 +01:00
Goffi
11d7dfa8fe jp (base): progressStarted signals are cached until progress_id is known, this avoid missing the progression if we have the signal before the id. 2015-11-22 17:37:19 +01:00
Goffi
698dcc2415 jp (base): fixed verbose option + there is a new line on ProgressErrorHandler only if the progress bar is actually displayed 2015-11-22 17:35:32 +01:00
Goffi
7c340bb518 jp (base, file): use of new progress API. Progress callbacks are managed through CommandBase.onProgress* method instead of host attributes. 2015-11-19 18:13:26 +01:00
Goffi
09619e6723 jp: use the new actionsGet method 2015-11-17 21:29:03 +01:00
Goffi
6d2df889a1 jp (base, file): file command and progress fixes and adaptation to new API:
- progress use new API, and signals to monitor progression and avoid use of progressGet before progress is actually started
    - progress behaviour on event is managed by callbacks which are Jp attributes
    - progress with unknown or 0 size don't show the progress bar
    - better handling of errors
    - CommandAnswering is update to manage actions instead of the deprecated askConfirmation
    - managed actions use callback easy to associate with an action type.
    - file command is updated to manage these changes and the recent changes in backend behaviour
    - verbosity is used to display more or less message when sending/receiving a file
    - destination path can be specified in file receive
    - file receive doesn't stop yet, still need some work in the backend
2015-11-15 23:42:21 +01:00
Goffi
4233150d7b jp (base): added a self.disp method which manage verbosity and stderr + verbosity property 2015-11-15 23:25:58 +01:00
Goffi
8477d22012 jp (base): added quitFromSignal method to quit from signal handler with errcode without traceback, and addOnQuitCallback to manage cleaning callbacks 2015-11-15 23:16:54 +01:00
Goffi
891a4c33af jp: added a --verbose command 2015-11-14 19:54:27 +01:00
Goffi
22696ec80b jp: profile session can now be started without connection:
- a new need_connect option is used when during BaseCommand init
    - if need_connect is True, profile connection is necessary, so use_profile must be True too
    - if need_connect if False, session can be started without connection, use_profile must be True
    - if need_connect is None, use_profile can be True (need_connect will be set to True) or False (need_connect is not used)
    - if need_connect is False (and so use_profile is True), a new --start-session option is usable
    - param get and set are the first commands to use this option, so parameters can be changed if connection is not working
2015-11-14 19:18:10 +01:00
Goffi
aa097525e3 jp: fixed bad --connect option check 2015-11-14 19:18:10 +01:00
Goffi
810a40c51c jp: separate password and connection of profile in --connect and --pwd arguments 2015-11-02 22:02:41 +01:00
Goffi
ffd6afcbb1 jp: fixed crash on commands using profile without "connect" option 2015-04-06 12:11:23 +02:00
Goffi
fbec02d396 2015 copyright dates update 2015-03-30 10:26:26 +02:00
Goffi
e67b4bd9eb jp: fixed bad try/except hidding errors + fixed bad management of jids without node 2015-03-30 10:04:29 +02:00
Goffi
8ce5c1862b core, frontends: refactoring to base Libervia on QuickFrontend (big mixed commit):
/!\ not finished, everything is still instable !
    - bridge: DBus bridge has been modified to allow blocking call to be called in the same way as asynchronous calls
    - bridge: calls with a callback and no errback are now possible, default errback log the error
    - constants: removed hack to manage presence without OrderedDict, as an OrderedDict like class has been implemented in Libervia
    - core: getLastResource has been removed and replaced by getMainResource (there is a global better management of resources)
    - various style improvments: use of constants when possible, fixed variable overlaps, import of module instead of direct class import
    - frontends: printInfo and printMessage methods in (Quick)Chat are more generic (use of extra instead of timestamp)
    - frontends: bridge creation and option parsing (command line arguments) are now specified by the frontend in QuickApp __init__
    - frontends: ProfileManager manage a more complete plug sequence (some stuff formerly manage in contact_list have moved to ProfileManager)
    - quick_frontend (quick_widgets): QuickWidgetsManager is now iterable (all widgets are then returned), or can return an iterator on a specific class (return all widgets of this class) with getWidgets
    - frontends: tools.jid can now be used in Pyjamas, with some care
    - frontends (XMLUI): profile is now managed
    - core (memory): big improvment on entities cache management (and specially resource management)
    - core (params/exceptions): added PermissionError
    - various fixes and improvments, check diff for more details
2015-01-24 01:00:29 +01:00
souliane
987cfbf89d move sat.tools.jid to sat_frontends.tools.jid 2014-08-26 12:52:46 +02:00
souliane
6a7f88858e jp: option '-c' is not longer a flag but a string to define the profile password:
- no '-c': same behavior as before, do not connect the profile
- '-c' with not following value: autoconnect and use the default value '' as profile password
- '-c' with a following value: autoconnect and use that value as profile password

Note that previous scripts may not work. For example, even if the profile password for "test1" is empty:
  jp disco -p test1 -c contact@host.net
must be changed to:
  jp disco -p test1 -c -- contact@host.net
Otherwise, argparse will think that "contact@host.net" is the password and that the target JID is missing.
2014-05-07 16:10:20 +02:00
Goffi
ec08d50aba jp: "disco" subcommand, moved into a new "info" subcommand + added "version" subcommand which get software version 2014-04-02 12:31:15 +02:00
Goffi
647487fc1d jp: using C.APP_URL for application url 2014-04-02 12:11:07 +02:00
Goffi
ba2bed39ab jp: fixed jid unicode decoding 2014-04-01 21:16:02 +02:00
Goffi
a0d69ae187 jp: fixed missing import 2014-04-01 21:15:35 +02:00
Matteo Cypriani
f0676dfa52 jp: updated main loop to gobject 3 2014-03-05 16:03:04 +01:00
souliane
b2f32986be frontends: fix typos, do not use logging in the xmlui tools: 2014-02-25 10:59:05 +01:00
Goffi
f31dd1adc0 jp: short option for progress is now -P instead of -g, so -g can be used for groups 2014-02-17 18:57:09 +01:00
Goffi
7ca3c657f4 jp: refactoring:
- imports from sat_frontends.jp instead of local imports
    - added __init__.py
    - commands now inherits from a base class: each base.CommandBase instance is a subcommand
    - new arguments are added in CommandBase.add_parser_options methods, starting point si CommandBase.run or CommandBase.connected if a profile connection is needed
    - commands are exported using a __commands__ variable at the top of the module
    - sub-subcommand are easily added by using an other CommandBase instance as parent instead of using a Jp instance. In this case, the parent subcommand must be the one exported, and have a subcommands iterable (see cmd_file or cmd_pipe for examples).
    - options which are often used (like --profile) are automatically added on demand (use_profile=True, use_progress=True)
    - commands are automatically loaded when there are in a module named cmd_XXX
    - restored --connect option
    - restored progress bar
    - restored getVersion bridge call on jp --version
    - fixed file and pipe commands
    - fixed forgotten translations
    - fixed non SàT compliant docstrings
    - better about/version dialog
2014-02-10 13:44:09 +01:00
Dal
f4de26e4e8 jp: refactoring using ArgParse 2014-02-05 14:35:26 +01:00