Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML import plugin plugin.LoadPlugins() s = '' while (s != 'exit' ): print '>' , s = raw_input () a = s.split( ' ' ) for p in plugin.Plugins: p.OnCommand(a[ 0 ], a[ 1 :])
Copy Source | Copy HTML
- import os
- import sys
- # Instances of downloaded plugins
- Plugins = []
- # Basic class of the plugin
- class Plugin (object):
- Name = 'undefined'
- # Feedback methods
- def OnLoad (self):
- pass
- def OnCommand (self, cmd, args):
- pass
- def LoadPlugins ():
- ss = os .listdir ( 'plugins' ) # Get the list of plugins in / plugins
- sys .path.insert ( 0 , 'plugins' ) # Add the plugins folder to $ PATH so that __import__ can load them
- for s in ss:
- print 'Found plugin' , s
- __import__ ( os .path.splitext (s) [ 0 ], None, None, [ '' ]) # Import the source of the plugin
- for plugin in Plugin .__ subclasses __ (): # since the Plugin is derived from object, we use __subclasses__ to find all the plugins produced from this class
- p = plugin () # Create an instance
- Plugins.append (p)
- p. OnLoad () # Call the event of loading this plugin
- return
Copy Source | Copy HTML
- from plugin import plugin
- class HelloPlugin (Plugin): # produce our plugin from the parent class
- Name = 'HelloPlugin v 1.0 Extreme Edition'
- # replace the necessary methods
- def OnLoad (self):
- print 'HelloPlugin 1.0 Extreme VIP Edition Loaded!'
- def OnCommand (self, cmd, args):
- if (cmd == 'hello' and len (args)> 0 ):
- print 'It \' s' , args [ 0 ], '! \ nJeez, man, nice to meet you!'
- return true
- else :
- return false
$ python main.py
Found plugin foo.py
HelloPlugin 1.0 Extreme VIP Edition Loaded!
> hello% username%
It's% username%!
Jeez, man, nice to meet you!
>
Copy Source | Copy HTML
- from plugin import plugin
- import commands
- class ShellPlugin (Plugin):
- Name = 'Shell plugin'
- def OnLoad (self):
- print 'Shell plugin loaded.'
- def OnCommand (self, cmd, args):
- if (cmd == 'run' ):
- print commands .getoutput ( "" .join (args))
- return true
- else :
- return false
$ python main.py
Found plugin shell.py
Found plugin foo.py
Shell plugin loaded.
HelloPlugin 1.0 Extreme VIP Edition Loaded!
> run uname -r
2.6.31-14-generic
> exit
Source: https://habr.com/ru/post/79513/
All Articles