d8ahazard / Cast.bundle

A Plex Channel To Interact With Local Cast Devices, Via Plex Media Server
59 stars 11 forks source link

"This plugin is not responding." #16

Closed aniljbhatia closed 6 years ago

aniljbhatia commented 6 years ago

Hi,

I am loving the idea of Phlex and have got it up and running with my Google Home to control Plex running inside Chrome, but I can't get Phlex to recognise my Chromecast. I have tried installing Cast.bundle through webtools and also manually, but the only action that seems to work is restarting the plugin. All other actions says "This plugin is not responding." instantly.

What am I doing wrong?

Thanks!

aniljbhatia commented 6 years ago

Found this in the Plex logs:

"WARN - Request for plug-in [com.plexapp.plugins.Cast] but it doesn't exist"

But I can see it in the plugins section in Plex.

aniljbhatia commented 6 years ago

Managed to get this working. I have to modify Plug-ins\Cast.bundle\Contents\Libraries\Shared\ifaddr_shared.py

Code block starting on line 162: def sockaddr_to_ip(sockaddr_ptr): if sockaddr_ptr[0].sa_familiy == socket.AF_INET: ipv4 = ctypes.cast(sockaddr_ptr, ctypes.POINTER(sockaddr_in)) ippacked = bytes(bytearray(ipv4[0].sin_addr)) ip = str(ipaddress.ip_address(ippacked)) return ip elif sockaddr_ptr[0].sa_familiy == socket.AF_INET6: ipv6 = ctypes.cast(sockaddr_ptr, ctypes.POINTER(sockaddr_in6)) flowinfo = ipv6[0].sin6_flowinfo ippacked = bytes(bytearray(ipv6[0].sin6_addr)) ip = str(ipaddress.ip_address(ippacked)) scope_id = ipv6[0].sin6_scope_id return(ip, flowinfo, scope_id) else: return None

Replaced with: def sockaddr_to_ip(sockaddr_ptr): if sockaddr_ptr: if sockaddr_ptr[0].sa_familiy == socket.AF_INET: ipv4 = ctypes.cast(sockaddr_ptr, ctypes.POINTER(sockaddr_in)) ippacked = bytes(bytearray(ipv4[0].sin_addr)) ip = str(ipaddress.ip_address(ippacked)) return ip elif sockaddr_ptr[0].sa_familiy == socket.AF_INET6: ipv6 = ctypes.cast(sockaddr_ptr, ctypes.POINTER(sockaddr_in6)) flowinfo = ipv6[0].sin6_flowinfo ippacked = bytes(bytearray(ipv6[0].sin6_addr)) ip = str(ipaddress.ip_address(ippacked)) scope_id = ipv6[0].sin6_scope_id return(ip, flowinfo, scope_id) else: return None return None

michaelarnauts commented 6 years ago

Could you create a Pull Request for that?

d8ahazard commented 6 years ago

@aniljbhatia @michaelarnauts

Just pushed this fix to master. Thanks for the help!!