| 1131 | return res |
| 1132 | |
| 1133 | def ATTRIB_URL(self, src, srcXML, param): |
| 1134 | key, leftover, dfltd = self.getKey(src, srcXML, param) |
| 1135 | addPath, leftover = self.getParam(src, leftover) |
| 1136 | addOpt, leftover = self.getParam(src, leftover) |
| 1137 | |
| 1138 | # compare PMS_mark in PlexAPI/getXMLFromMultiplePMS() |
| 1139 | PMS_mark = '/PMS(' + self.PMS_address + ')' |
| 1140 | |
| 1141 | # overwrite with URL embedded PMS address |
| 1142 | cmd_start = key.find('PMS(') |
| 1143 | cmd_end = key.find(')', cmd_start) |
| 1144 | if cmd_start>-1 and cmd_end>-1 and cmd_end>cmd_start: |
| 1145 | PMS_mark = '/'+key[cmd_start:cmd_end+1] |
| 1146 | key = key[cmd_end+1:] |
| 1147 | |
| 1148 | res = g_param['baseURL'] # base address to PlexConnect |
| 1149 | |
| 1150 | if key.endswith('.js'): # link to PlexConnect owned .js stuff |
| 1151 | res = res + key |
| 1152 | elif key.startswith('http://') or key.startswith('https://'): # external server |
| 1153 | res = key |
| 1154 | """ |
| 1155 | parts = urlparse.urlsplit(key) # (scheme, networklocation, path, ...) |
| 1156 | key = urlparse.urlunsplit(('', '', parts[2], parts[3], parts[4])) # keep path only |
| 1157 | PMS_uuid = PlexAPI.getPMSFromIP(g_param['PMS_list'], parts.hostname) |
| 1158 | PMSaddress = PlexAPI.getAddress(g_param['PMS_list'], PMS_uuid) # get PMS address (might be local as well!?!) |
| 1159 | res = res + '/PMS(' + quote_plus(PMSaddress) + ')' + key |
| 1160 | """ |
| 1161 | elif key.startswith('/'): # internal full path. |
| 1162 | res = res + PMS_mark + key |
| 1163 | elif key == '': # internal path |
| 1164 | res = res + PMS_mark + self.path[srcXML] |
| 1165 | else: # internal path, add-on |
| 1166 | res = res + PMS_mark + self.path[srcXML] + '/' + key |
| 1167 | |
| 1168 | if addPath: |
| 1169 | res = res + addPath |
| 1170 | |
| 1171 | if addOpt: |
| 1172 | if not '?' in res: |
| 1173 | res = res +'?'+ addOpt |
| 1174 | else: |
| 1175 | res = res +'&'+ addOpt |
| 1176 | |
| 1177 | return res |
| 1178 | |
| 1179 | def ATTRIB_VIDEOURL(self, src, srcXML, param): |
| 1180 | Video, leftover = self.getElement(src, srcXML, param) |