Difference between revisions of "0.24 Python bindings/Connection Handlers"
(→MythDB) |
(→MythBE) |
||
Line 242: | Line 242: | ||
== [[:Category:Myth Protocol|MythProto]] Connections == | == [[:Category:Myth Protocol|MythProto]] Connections == | ||
=== MythBE === | === MythBE === | ||
− | + | ==== backendCommand ==== | |
− | + | ;inputs | |
− | + | :command <string> | |
− | + | ;outputs | |
− | + | :response <string> | |
− | + | ;description | |
− | + | :This method sends a low level string to the backend, and returns the response. | |
− | + | ==== getRecording ==== | |
− | + | ;inputs | |
− | + | :chanid <str or int> | |
− | + | :starttime <datetime> | |
− | + | ;outputs | |
− | + | :None -- if recording not found | |
− | + | :[[Trunk Python bindings/Data Handlers#Program|Program]] object | |
− | + | ;description | |
− | + | :Returns information for a single recording | |
− | + | ==== deleteRecording ==== | |
− | + | ;inputs | |
− | + | :program <Program object> | |
− | + | :force=False <boolean> | |
− | + | ;description | |
− | + | :Informs the backend to delete the recording using whatever mechanism was selected | |
− | + | ==== forgetRecording ==== | |
− | + | ;inputs | |
− | + | :program <Program object> | |
− | + | ;description | |
− | + | :Informs the backend to mark a recording as re-recordable | |
− | + | ==== deleteFile ==== | |
− | + | ;inputs | |
− | + | :relative file path <string> | |
− | + | :storage group name <string> | |
− | + | ;description | |
− | + | :Delete a single managed file on the backend | |
− | + | ==== getHash ==== | |
− | + | ;inputs | |
− | + | :relative file path <string> | |
− | + | :storage group name <string> | |
− | + | ;outputs | |
− | + | :file hash <string> | |
− | + | ;description | |
− | + | :Calculate the [http://trac.opensubtitles.org/projects/opensubtitles/wiki/HashSourceCodes hash] value for a managed file | |
− | + | ==== reschedule ==== | |
+ | ;inputs | ||
+ | :recordid=-1 <int> | ||
+ | :wait=False <boolean> | ||
+ | ;description | ||
+ | :Issue a scheduler run on all rules, or on one specific rule if other than '-1'. Will optionally wait for the scheduler to finish before returning. | ||
+ | ==== fileExists ==== | ||
| relative path to file<br>sgroup='Default' (optional) | | relative path to file<br>sgroup='Default' (optional) | ||
| None or full path to file | | None or full path to file | ||
| Searches storage groups on the backend for given file | | Searches storage groups on the backend for given file | ||
− | + | ==== download ==== | |
− | |||
| url | | url | ||
| DownloadFileTransfer object | | DownloadFileTransfer object | ||
| Starts a managed download on the backend to the Temp storage group, and returns a file object. The downloaded file will be automatically deleted when the file is closed. | | Starts a managed download on the backend to the Temp storage group, and returns a file object. The downloaded file will be automatically deleted when the file is closed. | ||
− | + | ==== downloadTo ==== | |
− | |||
| url<br>storage group<br>relative path to file<br>openfile=False (optional) | | url<br>storage group<br>relative path to file<br>openfile=False (optional) | ||
| None or DownloadFileTransfer object (if openfile is True) | | None or DownloadFileTransfer object (if openfile is True) | ||
| Starts a managed download on the backend to the specified location. Optionally opens the new file for reading. | | Starts a managed download on the backend to the specified location. Optionally opens the new file for reading. | ||
− | + | ==== allocateEventLock ==== | |
− | |||
| regular expression | | regular expression | ||
| EventLock object | | EventLock object | ||
| Opens a lock object that cannot be acquired until an event matching the regular expression has been received. | | Opens a lock object that cannot be acquired until an event matching the regular expression has been received. | ||
− | + | ==== getPendingRecordings ==== | |
− | + | ;outputs | |
− | + | :list of Program objects | |
− | + | ;description | |
− | + | :Returns a list of programs scheduled to be recorded | |
− | + | ==== getScheduledRecordings ==== | |
− | + | ;outputs | |
− | + | :list of Program objects | |
− | + | ;description | |
− | + | :Returns a list of programs scheduled to be recorded | |
− | + | ==== getUpcomingRecordings ==== | |
− | + | ;outputs | |
− | + | :list of Program objects | |
− | + | ;description | |
− | + | :Returns a list of programs scheduled to be recorded, filtered for only those that will be recorded | |
− | + | ==== getConflictedRecordings ==== | |
− | + | ;outputs | |
− | + | :list of Program objects | |
− | + | ;description | |
− | + | :Returns a list of programs scheduled to be recorded, filtered for only those with scheduling conflicts | |
− | + | ==== getRecorderList ==== | |
− | + | ;outputs | |
− | + | :list of integers | |
− | + | ;description | |
− | + | :Returns a list of defined card IDs | |
− | + | ==== getFreeRecorderList ==== | |
− | + | ;outputs | |
− | + | :list of integers | |
− | + | ;description | |
− | + | :Returns a list of available card IDs | |
− | + | ==== lockTuner ==== | |
− | + | ;inputs | |
− | + | :id=None <int> | |
− | + | ;outputs | |
− | + | :(ID <int>, video node <string>, audio node <string>, VBI node <string>) | |
− | + | :error value <int> | |
− | + | ;description | |
− | + | :Returns the information about the locked tuner, -1 if no tuners are available, or -2 if the optionally requested tuner is already locked. | |
− | + | ==== freeTuner ==== | |
− | + | ;inputs | |
− | + | :id=None <int> | |
− | + | ;description | |
− | + | :Free all tuners currently locked by this connection, or one specific tuner. This is automatically run when the connection is closed. | |
− | + | ==== getCurrentRecording ==== | |
− | + | ;inputs | |
− | + | :recorder <int> | |
− | + | ;outputs | |
− | + | :Program object | |
− | + | ;description | |
− | + | :Returns the program currently being recorded by the given ID. | |
− | + | ==== isRecording ==== | |
− | + | ;inputs | |
− | + | :recorder <int> | |
− | + | ;outputs | |
− | + | :isrecording <boolean> | |
− | + | ;description | |
− | + | :Returns True or False whether the recorder is actively being used. | |
− | + | ==== isActiveBackend ==== | |
− | + | ;inputs | |
− | + | :hostname <string> | |
− | + | ;outputs | |
− | + | :isactive <boolean> | |
− | + | ;description | |
− | + | :Returns True or False whether the provided host is connected as a backend. | |
− | + | ==== getRecordings ==== | |
− | + | ;outputs | |
− | + | :list of Program objects | |
− | + | ;description | |
− | + | :Returns a list of existing recordings. | |
− | + | ==== getExpiring ==== | |
− | + | ;outputs | |
− | + | :list of Program objects | |
− | + | ;description | |
− | + | :Returns a list of existing recordings nearing expiration. | |
− | + | ==== getCheckfile ==== | |
− | + | ;inputs | |
− | + | :program <Program object> | |
− | + | ;outputs | |
− | + | :absolute path <string> | |
− | + | :error code <int> | |
− | + | ;description | |
− | + | :Returns the path to the recording on the backend. | |
− | + | ==== getFreeSpace ==== | |
− | + | ;inputs | |
− | + | :all=False <boolean> | |
− | + | ;outputs | |
− | + | :list of FreeSpace objects | |
− | + | ;description | |
− | + | :Returns information about the recording directories on the local or all backends. | |
− | + | ==== getFreeSpaceSummary ==== | |
− | + | ;outputs | |
− | + | :(total space, used space) <int KB> | |
− | + | ;description | |
− | + | :Returns information about disk usage. | |
− | + | ==== getLoad ==== | |
− | + | ;outputs | |
− | + | :(1, 5, 15) <int> | |
− | + | ==== getUptime ==== | |
− | + | ;outputs | |
− | + | :uptime <int secs> | |
− | + | ==== walkSG ==== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ==== getSGList ==== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ==== getSGFile ==== | |
− | + | ||
− | + | ||
+ | |||
+ | ==== getLastGuideData ==== | ||
+ | ;outputs | ||
+ | :date of last guide data <datetime> | ||
+ | |||
=== BEEventMonitor === | === BEEventMonitor === | ||
=== MythSystemEvent === | === MythSystemEvent === |
Revision as of 15:21, 16 August 2010
Contents
- 1 Database Connections
- 2 MythProto Connections
- 2.1 MythBE
- 2.1.1 backendCommand
- 2.1.2 getRecording
- 2.1.3 deleteRecording
- 2.1.4 forgetRecording
- 2.1.5 deleteFile
- 2.1.6 getHash
- 2.1.7 reschedule
- 2.1.8 fileExists
- 2.1.9 download
- 2.1.10 downloadTo
- 2.1.11 allocateEventLock
- 2.1.12 getPendingRecordings
- 2.1.13 getScheduledRecordings
- 2.1.14 getUpcomingRecordings
- 2.1.15 getConflictedRecordings
- 2.1.16 getRecorderList
- 2.1.17 getFreeRecorderList
- 2.1.18 lockTuner
- 2.1.19 freeTuner
- 2.1.20 getCurrentRecording
- 2.1.21 isRecording
- 2.1.22 isActiveBackend
- 2.1.23 getRecordings
- 2.1.24 getExpiring
- 2.1.25 getCheckfile
- 2.1.26 getFreeSpace
- 2.1.27 getFreeSpaceSummary
- 2.1.28 getLoad
- 2.1.29 getUptime
- 2.1.30 walkSG
- 2.1.31 getSGList
- 2.1.32 getSGFile
- 2.1.33 getLastGuideData
- 2.2 BEEventMonitor
- 2.3 MythSystemEvent
- 2.1 MythBE
- 3 Other Connections
Database Connections
MythDB
tablefields
MythDB.tablefields is populated with an object providing information of database table fields. Tables can be selected as an attribute or item, and return a subclass with further information. The subclass can be converted into a list of field names, or information about each field can be accessed.
>>> db = MythDB() >>> db.tablefields.settings [u'value', u'data', u'hostname'] >>> db.tablefields.settings.value {'default': u'', 'null': u'NO', 'type': u'varchar(128)', 'key': u'MUL', 'extra': u''} >>> db.tablefields.settings.value.null u'NO'
settings
MythDB.settings is populated with an object providing access to settings table data. Data is accessed through two levels, first the hostname, and then value. The second level supports a '.getall()' method that returns all settings set for that host. Global settings can be accessed through the 'NULL' hostname.
>>> db = MythDB() >>> db.settings.NULL.DBSchemaVer u'1262' >>> db.settings.NULL.getall() <itertools.izip object at 0x804e4ac20>
getStorageGroup
- inputs
- groupname=None <string>
- hostname=None <string>
- outputs
- StorageGroup generator
- description
- The two optional arguments can be used to filter the available storage groups.
>>> db = MythDB() >>> db.getStorageGroup(groupname='Videos').next() <StorageGroup 'myth://Videos@mythbe/mnt/mythtv/videos/' at 0x804e7d560>
cursor
- inputs
- log=None <MythLog object>
- outputs
- LoggedCursor object
- description
- Returns a cursor for direct database access
searchRecorded
- inputs
- All inputs are optional, and can be mixed and matched.
title |
subtitle |
chanid |
starttime |
progstart |
category |
hostname |
- outputs
- Recorded generator
- description
- Returns multiple recordings matching the given data
>>> db.searchRecorded(title='Chuck') >>> db.searchRecorded(category='Documentary', hdtv=True)
searchOldRecorded
- inputs
- All inputs are optional, and can be mixed and matched.
title |
subtitle |
chanid |
starttime |
endtime |
- outputs
- OldRecorded generator
- description
- Returns multiple old recordings matching the given data
searchJobs
- inputs
- All inputs are optional, and can be mixed and matched.
chanid |
starttime |
type |
status |
hostname |
- outputs
- Job generator
- description
- Returns multiple job entries matching the given data
searchGuide
- inputs
- All inputs are optional, and can be mixed and matched.
chanid |
starttime |
endtime |
title |
subtitle |
- outputs
- Guide generator
- description
- Returns multiple guide programs matching the given data
searchRecord
- inputs
- All inputs are optional, and can be mixed and matched.
type |
chanid |
starttime |
startdate |
endtime |
- outputs
- OldRecorded generator
- description
- Returns multiple recording rules matching the given data
searchInternetContent
- inputs
- All inputs are optional, and can be mixed and matched.
feedtitle |
title |
subtitle |
season |
episode |
- outputs
- InternetContentArticles generator
- description
- Returns multiple internet video entries matching the given data
getFrontends
- inputs
- outputs
- generator of active Frontends
- description
- this tests all frontends listed in the database, and returns those that respond properly to a connection
getFrontend
- inputs
- host <string>
- outputs
- Frontend object
- description
- this returns a Frontend object for a single frontend defined in the database
MythVideo
Command | Inputs | Returns | Description |
getStorageGroup | |||
cursor | |||
scanStorageGroups | |||
searchVideo | |||
getVideo |
MythMusic
MythVideo
Command | Inputs | Returns | Description |
getStorageGroup | |||
cursor | |||
searchMusic |
MythProto Connections
MythBE
backendCommand
- inputs
- command <string>
- outputs
- response <string>
- description
- This method sends a low level string to the backend, and returns the response.
getRecording
- inputs
- chanid <str or int>
- starttime <datetime>
- outputs
- None -- if recording not found
- Program object
- description
- Returns information for a single recording
deleteRecording
- inputs
- program <Program object>
- force=False <boolean>
- description
- Informs the backend to delete the recording using whatever mechanism was selected
forgetRecording
- inputs
- program <Program object>
- description
- Informs the backend to mark a recording as re-recordable
deleteFile
- inputs
- relative file path <string>
- storage group name <string>
- description
- Delete a single managed file on the backend
getHash
- inputs
- relative file path <string>
- storage group name <string>
- outputs
- file hash <string>
- description
- Calculate the hash value for a managed file
reschedule
- inputs
- recordid=-1 <int>
- wait=False <boolean>
- description
- Issue a scheduler run on all rules, or on one specific rule if other than '-1'. Will optionally wait for the scheduler to finish before returning.
fileExists
| relative path to file
sgroup='Default' (optional)
| None or full path to file
| Searches storage groups on the backend for given file
download
| url | DownloadFileTransfer object | Starts a managed download on the backend to the Temp storage group, and returns a file object. The downloaded file will be automatically deleted when the file is closed.
downloadTo
| url
storage group
relative path to file
openfile=False (optional)
| None or DownloadFileTransfer object (if openfile is True)
| Starts a managed download on the backend to the specified location. Optionally opens the new file for reading.
allocateEventLock
| regular expression | EventLock object | Opens a lock object that cannot be acquired until an event matching the regular expression has been received.
getPendingRecordings
- outputs
- list of Program objects
- description
- Returns a list of programs scheduled to be recorded
getScheduledRecordings
- outputs
- list of Program objects
- description
- Returns a list of programs scheduled to be recorded
getUpcomingRecordings
- outputs
- list of Program objects
- description
- Returns a list of programs scheduled to be recorded, filtered for only those that will be recorded
getConflictedRecordings
- outputs
- list of Program objects
- description
- Returns a list of programs scheduled to be recorded, filtered for only those with scheduling conflicts
getRecorderList
- outputs
- list of integers
- description
- Returns a list of defined card IDs
getFreeRecorderList
- outputs
- list of integers
- description
- Returns a list of available card IDs
lockTuner
- inputs
- id=None <int>
- outputs
- (ID <int>, video node <string>, audio node <string>, VBI node <string>)
- error value <int>
- description
- Returns the information about the locked tuner, -1 if no tuners are available, or -2 if the optionally requested tuner is already locked.
freeTuner
- inputs
- id=None <int>
- description
- Free all tuners currently locked by this connection, or one specific tuner. This is automatically run when the connection is closed.
getCurrentRecording
- inputs
- recorder <int>
- outputs
- Program object
- description
- Returns the program currently being recorded by the given ID.
isRecording
- inputs
- recorder <int>
- outputs
- isrecording <boolean>
- description
- Returns True or False whether the recorder is actively being used.
isActiveBackend
- inputs
- hostname <string>
- outputs
- isactive <boolean>
- description
- Returns True or False whether the provided host is connected as a backend.
getRecordings
- outputs
- list of Program objects
- description
- Returns a list of existing recordings.
getExpiring
- outputs
- list of Program objects
- description
- Returns a list of existing recordings nearing expiration.
getCheckfile
- inputs
- program <Program object>
- outputs
- absolute path <string>
- error code <int>
- description
- Returns the path to the recording on the backend.
getFreeSpace
- inputs
- all=False <boolean>
- outputs
- list of FreeSpace objects
- description
- Returns information about the recording directories on the local or all backends.
getFreeSpaceSummary
- outputs
- (total space, used space) <int KB>
- description
- Returns information about disk usage.
getLoad
- outputs
- (1, 5, 15) <int>
getUptime
- outputs
- uptime <int secs>
walkSG
getSGList
getSGFile
getLastGuideData
- outputs
- date of last guide data <datetime>
BEEventMonitor
MythSystemEvent
Other Connections
MythXML
Command | Inputs | Returns | Description |
_queryObject | |||
_query | |||
_queryTree | |||
getConnectionInfo | |||
getServDesc | |||
getHosts | |||
getKeys | |||
getSetting | |||
getProgramGuide | |||
getProgramDetails | |||
getChannelIcon | |||
getRecorded | |||
getExpiring | |||
getInternetSources |
Frontend
Command | Inputs | Returns | Description |
getQuery | list of 2-tuples, [(location string, description)] | returns all available data queries from the backend | |
sendQuery | query (string) | response (string) | sends a query to the backend, returning the unprocessed result |
getPlay | list of 2-tuples, [(playback command, description)] | returns all available playback commands from the backend | |
sendPlay | command (string) | boolean | sends a command to the backend, returning success or failure |
play | media (any object with _playOnFe method) | boolean | plays the given media object on the frontend, currently works with Recorded, Program, or Video |
getLoad | tuple | returns the 1/5/15 load averages | |
getUptime | timedelta | returns the system uptime | |
getTime | datetime | returns the current system time | |
getMemory | dict | returns a dictionary of memory and swap usage in megabytes |
jump
Frontend.jump is populated with an object intended for use sending jumppoints to the frontend. The '.list()' and '.dict()' methods return the available jumppoints, and jumps can be sent by accessing a jumppoint as an attribute or item. Returns True on successful jump.
>>> fe = Frontend.fromUPNP().next() >>> fe.sendQuery('location') 'mainmenu' >>> fe.jump.mythvideo True >>> fe.sendQuery('location') 'mythvideo' >>> fe.jump['playbackrecordings'] True >>> fe.sendQuery('location') 'playbackbox'
key
Frontend.key is populated with an object intended for use sending keypresses to the frontend. The '.list()' method returns a list of special keys allowed, in addition to any alphanumeric keys. Keypresses can be sent as an attribute or item, and accept both literal strings and ordinal scancodes. Returns True on success.
>>> fe = Frontend.fromUPNP().next() >>> fe.key ['#', '$', '%', '&', '(', ')', ..... ,'tab', 'underscore', 'up', '|'] >>> fe.key.escape True >>> fe.key['enter'] True >>> fe.key[68] True