Commit graph libervia-backend/frontends/src/jp/base.py
Author SHA1 Message Date
Goffi
e8409b13e6 jp (base): added no_lf in disp() to avoid printing a line feed 2017-06-28 01:21:49 +02:00
Goffi
c8b4b77908 jp: fixed progress 2017-05-04 00:36:03 +02:00
Goffi
e12e25d1bf jp: added use_pubsub and use_pubsub_node_req arguments to CommandBase
pubsub add --node and --service arguments
    pubsub_node_req add --service and a positional node argument (i.e. mandatory)
2017-04-27 01:01:43 +02:00
Goffi
f7657610f4 jp (base): added msg and exit_code argument to errback so it's more generic 2017-03-29 19:42:44 +02:00
Goffi
b6c9073322 jp (base): raise InternalError if output is used when use_output is not declared 2017-03-13 23:14:00 +01:00
Goffi
4d96b85178 jp (base): output can now specify a default when registering 2017-03-12 23:33:26 +01:00
Goffi
09bf7b9b11 jp (base): replaced log.warning by stderr prints 2017-03-12 23:32:43 +01:00
Goffi
a860999204 jp (outputs): moved output options parsing and checking to base methods 2017-03-12 23:31:06 +01:00
Goffi
90824a69b0 jp (base): added generic errback to CommandBase + show error message on plugin ImportError 2017-03-09 23:09:18 +01:00
Goffi
085ed041e7 core, bridge: renamed getProfileName to profileNameGet according to new conventions 2017-03-05 21:36:01 +01:00
Goffi
c4c57e7d42 jp (base): improved module import:
module import now display a warning were suitable on import issue
2017-02-21 21:01:40 +01:00
Goffi
8155bc3ee8 jp (base, blog, output(std)): fixed bad unicode handling in stdout, use of jp.disp instead of simple print 2017-02-21 21:01:40 +01:00
Goffi
127744dd5b jp (core): added extra_outputs:
- extra outputs are output locals to a command which can be used in addition to the generic one which are compatible
    - added --output_option argument(s) to specify option specific to selected output
    - Jp.command now references the running command
2017-02-16 00:49:46 +01:00
Goffi
3e795fde5c jp (info/disco): added --node argument 2017-02-12 21:17:56 +01:00
Goffi
b5f1e45d4e core, bridge, frontends: renamed asyncConnect to connect, and added options parameters (not used yet) 2017-02-06 22:54:43 +01:00
Goffi
e4000b4f3b jp (core): fixed signal registration for progressions 2017-01-15 16:00:40 +01:00
Goffi
1e09016747 jp (info/session): added a command to get data on current session 2017-01-05 22:22:26 +01:00
Goffi
0a5fd6f3f4 primitivus, jp: dynamic bridge + fixed D-Bus bridge:
Primitivus and jp can now load the bridge specified in sat.conf, but they are only working with D-Bus so far (need to change all sync calls to async).
    Exit code 3 is used for Bridge init error.
2016-12-18 16:28:51 +01:00
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