PAhelper / PhoenixAdult.bundle

Plex Meta-Data Agent for scene videos from multiple adult sites
356 stars 138 forks source link

Some sites won't work on Linux installations of Plex #64

Closed PAhelper closed 4 years ago

PAhelper commented 5 years ago

Do the PornPros sites search and match and pull metadata for you? I personally have an issue when it pulls any URL for any PornPros site:

URLError: <urlopen error [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)>

I thought that was a universal error for all of us, but if the problem is just me (or a few of us), then I will work to resolve it on my end. For information sharing, I am running Plex 1.14.1.5488-cc260c476 on Ubuntu 18.04.1 LTS. Basically I'm trying to determine if this is something that needs fixed in the Agent code, or in my server configuration... I'm leaning more toward server configuration.

Spanishu commented 5 years ago

Same problem here Plex 1.14.1.5488 on Raspbian

chempke commented 5 years ago

I've tested some scenes from PornPros, PassionHD, FantasyHD, Lubed and Tiny4K and all of them works well. Only the displayed title bothers me a bit, it puts the studio in the title.

Spanishu commented 5 years ago

@chempke what configuration are you running? I was never able to get Passion HD to work. ....

chempke commented 5 years ago

My PMS running on Win10, Plex version 1.14.1.5488

Spanishu commented 5 years ago

hmmm maybe it is a linux type of thing...?

PAhelper commented 5 years ago

That's what I was thinking, it's something to do with our setup rather than the code...

insickin commented 5 years ago

I've also tested a few scenes and "PornPros - Accounting For Sex" is the only one that got tagged. I'm running on Raspberry Pi (Linux) Version 1.12.1.4885.

insickin commented 5 years ago

Trying to add Pure Mature scenes witch also don't get found on my Raspberry setup (Raspbian) but are being found effortlessly on a Windows server. Can you think of a fix?

insickin commented 5 years ago

@PAhelper Also Lubed scenes are not found on Linux on my (test) windows server I have no problems finding them only they are tagged as: "Lubed - Wet Brunette" (with the studio name in the title)

Is there a fix so that the scenes can be found in Linux servers?

PAhelper commented 5 years ago

There is almost certainly a fix, but I don't think it will be the Plex Agent code. It seems like something we'll have to fix in our Linux environment...

insickin commented 5 years ago

If someone finds a fix on how to manipulate our Linux servers can they please share it?

nitschkecm commented 5 years ago

Could a proxy solution maybe help? From my very little understanding it is a bug in the Plexinternal Python "engine". If we could trigger this outside of Plex with an updated version.. probably should work?

Spanishu commented 5 years ago

could this be an option ? https://bitbucket.org/stankness/sstv-plex-plugin/issues/33/channel-not-responding

PAhelper commented 5 years ago

Unfortunately no. That worked on some sites, but PornPros and LesbianX specifically are setup so they don't have an HTTP version of the page. If you request HTTP://pornpros... it immediately redirects you to HTTPS://pornpros... and then Plex can't handshake and then we still get the error.

PAhelper commented 5 years ago

So the best case scenario is that Plex adds the updated libraries to their Linux distributions. The next best I will be able to do in the agent code is add modules to the agent's library files and get metadata working for us Linux folks on these sites, but I wouldn't be able to get any images, since those are handled exclusively by the built-in Plex functions as far as I can tell.

I'm not going to put this real high on the list because:

calibear20 commented 5 years ago

This issue is also occurring with the new addition, ManyVids.

`2019-03-02 13:41:42,933 (7f6233fff700) : INFO (init:45) - *MEDIA TITLE** Manyvids - 432754 2019-03-02 13:41:42,933 (7f6233fff700) : INFO (init:52) - Getting Search Settings for: Manyvids - 432754 2019-03-02 13:41:42,935 (7f6233fff700) : INFO (PAsearchSites:689) - ^^^^^^^ siteID: 568 2019-03-02 13:41:42,936 (7f6233fff700) : INFO (PAsearchSites:691) - ^^^^^^^ Shortening Title 2019-03-02 13:41:42,936 (7f6233fff700) : INFO (PAsearchSites:692) - manyvids vs manyvids 2019-03-02 13:41:42,936 (7f6233fff700) : INFO (PAsearchSites:695) - 1 2019-03-02 13:41:42,936 (7f6233fff700) : INFO (PAsearchSites:742) - 6 2019-03-02 13:41:42,937 (7f6233fff700) : INFO (PAsearchSites:742) - searchTitle (before date processing): 432754 2019-03-02 13:41:42,937 (7f6233fff700) : INFO (init:62) - Search Title: 432754 2019-03-02 13:41:42,937 (7f6233fff700) : INFO (init:71) - 432754 2019-03-02 13:41:42,939 (7f6233fff700) : DEBUG (networking:166) - Requesting 'https://www.manyvids.com/video/432754' 2019-03-02 13:41:42,985 (7f6233fff700) : CRITICAL (agentkit:1014) - Exception in the search function of agent named$ File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Versions/2/Python/$ agent.search(*f_args, f_kwargs) File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents$ results = PAsearchSites.siteManyvids.search(results,encodedTitle,title,searchTitle,siteNum,lang,searchByDateActo$ File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents$ searchResults = HTML.ElementFromURL(url) File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Versions/2/Python/$ method=method, File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Versions/2/Python/$ req = self._core.networking.http_request(url, *args, *kwargs) File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Versions/2/Python/$ return HTTPRequest(self._core, url, data, h, url_cache, encoding, errors, timeout, immediate, sleep, opener, fol$ File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Versions/2/Python/$ self.load() File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Versions/2/Python/$ f = self._opener.open(req, timeout=self._timeout) File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Platforms/Shared/L$ response = self._open(req, data) File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Platforms/Shared/L$ '_open', req) File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Platforms/Shared/L$ result = func(args) File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Platforms/Shared/L$ return self.do_open(httplib.HTTPSConnection, req) File "/usr/lib/plexmediaserver/Resources/Plug-ins-cc260c476/Framework.bundle/Contents/Resources/Platforms/Shared/L$ raise URLError(err) URLError: <urlopen error [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)>

2019-03-02 13:41:42,987 (7f6233fff700) : DEBUG (runtime:88) - Sending packed state data (524 bytes) 2019-03-02 13:41:42,987 (7f6233fff700) : DEBUG (runtime:924) - Response: [200] str, 16 bytes `

PAhelper commented 5 years ago

Ok, so I did a ton of research on this over the weekend. My intent originally was to make a case to put on the Plex forums that the Linux installation doesn't actually use modern versions of the urllib2 module. I started making a basic Metadata Agent that only tries to load an SSLv3 site, and I was gonna run it my Windows installation of Plex and my Linux installation and post logs to support and so on and so forth. I didn't get that far, but I did find a lot of fascinating information about the Plex backend, and I wanted to post it here before I closed out all my browser tabs...

First, I found that there actually used to be documentation for Plex Agents before the recent Plex.tv site / forum revamp. You can still find it on archive.org: https://web.archive.org/web/20150218053337/http://dev.plexapp.com/docs/agents/basics.html

I also stumbled across a PDF from 2011 that has some information about the structure of the metadata variable passed into the agent code; the one we fill with details and then pass back to Plex. It also covers some of the pre-made functions available (the functions that are currently limiting us from using SSLv3 sites) like HTTP.request() and Proxy.Preview(): https://us.v-cdn.net/6025034/uploads/editor/rg/jxvpxxxt63r6.pdf

Last but not least, I found an old addon that appears to let you add Movie Extras like trailers and BTS videos from the agent. I haven't tested it yet, but this code might be used to download the little 3 minute preview versions of a scene as the "trailer". Best I can tell, movie extras is just a new extension of the metadata variable that was possibly added after the above documentation was written: https://github.com/piplongrun/TrailerAddict.bundle/blob/master/Contents/Code/__init__.py

So with all the fun new stuff I've learned, I'm closer to being able to replace the Plex HTML.ElementFromURL() function with some natural Python code that does the same thing (but uses an included version of urllib2 instead of the one inside the Plex program). This would allow Linux users to pull metadata from the sites mentioned in this thread, though perhaps not pull the images and extras since those would still rely on Plex's internal code structure.

This link seems to show pulling the HTML of a page into Python for parsing: https://stackoverflow.com/questions/44584569/how-to-get-particular-tag-data-from-url-in-python-from-urllib2

benq11 commented 5 years ago

Is that still being worked on? Unfortunately cant match a major part of my library. If not anybody knows a work around?

PAhelper commented 5 years ago

I'm taking a week off work towards the end of the month and this is one of the things I plan to tackle.

ColonelPud commented 5 years ago

I have a Synology DS918+ if you need someone to help test the linux fixes.

PAhelper commented 5 years ago

Alright guys, I had a little free time before my week of vacation and I think I got this working for PornPros (and related sites like Passion-HD, PureMature, etc.) on my Ubuntu installation of Plex. Give it a whirl and let me know how it treats the rest of you.

fritz276 commented 5 years ago

I could only test PureMature, and it works if you ONLY supply the title. When you supply more, there is a small error:

2019-04-09 13:05:41,126 (8045b4500) : DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/library/metadata/87775/tree' 2019-04-09 13:05:41,132 (8045b4500) : INFO (init:45) - *MEDIA TITLE** Puremature 18 03 21 Alexis Fawx Dirty Laundry 2019-04-09 13:05:41,132 (8045b4500) : INFO (init:52) - Getting Search Settings for: Puremature 18 03 21 Alexis Fawx Dirty Laundry 2019-04-09 13:05:41,133 (8045b4500) : INFO (PAsearchSites:768) - mediaTitle w/ possible abbrieviation: Puremature 18 03 21 Alexis Fawx Dirty Laundry 2019-04-09 13:05:41,137 (8045b4500) : INFO (PAsearchSites:890) - mediaTitle w/ possible abbrieviation fixed: Puremature 18 03 21 Alexis Fawx Dirty Laundry 2019-04-09 13:05:41,139 (8045b4500) : INFO (PAsearchSites:905) - ^^^^^^^ siteID: 484 2019-04-09 13:05:41,139 (8045b4500) : INFO (PAsearchSites:907) - ^^^^^^^ Shortening Title 2019-04-09 13:05:41,139 (8045b4500) : INFO (PAsearchSites:908) - puremature vs puremature 2019-04-09 13:05:41,140 (8045b4500) : INFO (PAsearchSites:911) - 1 2019-04-09 13:05:41,140 (8045b4500) : INFO (PAsearchSites:958) - 6 2019-04-09 13:05:41,140 (8045b4500) : INFO (PAsearchSites:958) - searchTitle (before date processing): 18 03 21 Alexis Fawx Dirty Laundry 2019-04-09 13:05:41,140 (8045b4500) : INFO (init:62) - Search Title: Alexis Fawx Dirty Laundry 2019-04-09 13:05:41,140 (8045b4500) : INFO (init:66) - Search Date: 2018-03-21 2019-04-09 13:05:41,140 (8045b4500) : INFO (init:71) - Alexis%20Fawx%20Dirty%20Laundry 2019-04-09 13:05:41,142 (8045b4500) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/alexis-fawx-dirty-laundry' 2019-04-09 13:05:41,515 (8045b4500) : CRITICAL (agentkit:1014) - Exception in the search function of agent named 'PhoenixAdult', called with keyword arguments {'openSubtitlesHash': 'b105b8c30c91a53a', 'name': 'Puremature 18 03 21 Alexis Fawx Dirty Laundry', 'filename': '%2Fmedia%2Fclips_unsorted%2FPureMature%2E18%2E03%2E21%2EAlexis%2EFawx%2EDirty%2ELaundry%2EXXX%2E1080p%2EMP4-KTR%2Fpuremature%2E18%2E03%2E21%2Ealexis%2Efawx%2Edirty%2Elaundry%2Emp4', 'plexHash': '60ea7e7f66ea8bc6652510fc28c762285b6860a0', 'duration': '1816725', 'id': '87775'} (most recent call last): File "/usr/local/share/plexmediaserver-plexpass/Resources/Plug-ins-ad6e39743/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 1007, in _search agent.search(*f_args, f_kwargs) File "/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents/Code/init.py", line 468, in search results = PAsearchSites.networkPornPros.search(results,encodedTitle,title,searchTitle,siteNum,lang,searchByDateActor,searchDate, searchSiteID) File "/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents/Code/networkPornPros.py", line 18, in search searchResult = searchResults.xpath('//div[@class="details col-sm-6 col-md-3 order-md-2 mb-2"]')[0] File "/usr/local/share/plexmediaserver-plexpass/Resources/Plug-ins-ad6e39743/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/code/sandbox.py", line 108, in getitem = lambda x, y: x.getitem(y), IndexError: list index out of range

vs working if I only use the title:

2019-04-09 13:09:42,117 (8045b4000) : INFO (agentkit:957) - Searching for matches for {'year': None, 'id': '87775', 'name': 'Puremature Dirty Laundry'} 2019-04-09 13:09:42,117 (8045b4000) : DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/library/metadata/87775/tree' 2019-04-09 13:09:42,121 (8045b4000) : INFO (init:45) - *MEDIA TITLE** Puremature Dirty Laundry 2019-04-09 13:09:42,121 (8045b4000) : INFO (init:52) - Getting Search Settings for: Puremature Dirty Laundry 2019-04-09 13:09:42,121 (8045b4000) : INFO (PAsearchSites:768) - mediaTitle w/ possible abbrieviation: Puremature Dirty Laundry 2019-04-09 13:09:42,125 (8045b4000) : INFO (PAsearchSites:890) - mediaTitle w/ possible abbrieviation fixed: Puremature Dirty Laundry 2019-04-09 13:09:42,128 (8045b4000) : INFO (PAsearchSites:905) - ^^^^^^^ siteID: 484 2019-04-09 13:09:42,128 (8045b4000) : INFO (PAsearchSites:907) - ^^^^^^^ Shortening Title 2019-04-09 13:09:42,128 (8045b4000) : INFO (PAsearchSites:908) - puremature vs puremature 2019-04-09 13:09:42,128 (8045b4000) : INFO (PAsearchSites:911) - 1 2019-04-09 13:09:42,128 (8045b4000) : INFO (PAsearchSites:958) - 6 2019-04-09 13:09:42,128 (8045b4000) : INFO (PAsearchSites:958) - searchTitle (before date processing): Dirty Laundry 2019-04-09 13:09:42,129 (8045b4000) : INFO (init:62) - Search Title: Dirty Laundry 2019-04-09 13:09:42,129 (8045b4000) : INFO (init:71) - Dirty%20Laundry 2019-04-09 13:09:42,130 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:42,624 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:42,736 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:42,834 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:42,930 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,035 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,136 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,233 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,332 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,427 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,526 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,623 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,719 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,818 (8045b4000) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:43,915 (8045b4000) : DEBUG (runtime:88) - Sending packed state data (5616 bytes) 2019-04-09 13:09:43,915 (8045b4000) : DEBUG (runtime:924) - Response: [200] str, 5376 bytes 2019-04-09 13:09:48,981 (80922f500) : DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.phoenixadult/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZW5zNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzNQo4Nzc3NXM0CmRiaWRpMApzNwp2ZXJzaW9ubnMxMApwYXJlbnRHVUlEbnM4CnBhcmVudElEczUKTW92aWVzMTAKbWVkaWFfdHlwZXM1OQpjb20ucGxleGFwcC5hZ2VudHMucGhvZW5peGFkdWx0Oi8vZGlydHktbGF1bmRyeXw0ODQ%40bGFuZz1lbnM0Cmd1aWRzMTcKZGlydHktbGF1bmRyeXw0ODRzMgppZHIwCg_ 2019-04-09 13:09:48,982 (80922f500) : DEBUG (runtime:49) - Received packed state data (11532 bytes) 2019-04-09 13:09:48,984 (80922f500) : DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.phoenixadult/messaging/function/X0FnZW50S2l0OlVwZGF0ZU1ldGFkYXRh/Y2VyZWFsMQoxCmxpc3QKMApyMAo/Y2VyZWFsMQoxCmRpY3QKMTAKczIKZW5zNApsYW5nYjFzNQpmb3JjZWIwczgKcGVyaW9kaWNzNQo4Nzc3NXM0CmRiaWRpMApzNwp2ZXJzaW9ubnMxMApwYXJlbnRHVUlEbnM4CnBhcmVudElEczUKTW92aWVzMTAKbWVkaWFfdHlwZXM1OQpjb20ucGxleGFwcC5hZ2VudHMucGhvZW5peGFkdWx0Oi8vZGlydHktbGF1bmRyeXw0ODQ@bGFuZz1lbnM0Cmd1aWRzMTcKZGlydHktbGF1bmRyeXw0ODRzMgppZHIwCg 2019-04-09 13:09:48,985 (80922f500) : DEBUG (model:32) - Loading model with GUID com.plexapp.agents.phoenixadult://dirty-laundry|484?lang=en 2019-04-09 13:09:48,986 (80922f500) : ERROR (model:205) - Cannot read model from /Plex Media Server/Metadata/Movies/0/9478b9c1d39e8379e8079b14c2a5d74048af8bf.bundle/Contents/com.plexapp.agents.phoenixadult 2019-04-09 13:09:48,986 (80922f500) : DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/library/metadata/87775/tree' 2019-04-09 13:09:48,993 (80922f500) : INFO (init__:760) - **UPDATE CALLED* 2019-04-09 13:09:48,993 (80922f500) : INFO (init:763) - 484 2019-04-09 13:09:48,994 (80922f500) : INFO (networkPornPros:33) - scene url: http://puremature.com/video/dirty-laundry 2019-04-09 13:09:48,994 (80922f500) : DEBUG (networking:166) - Requesting 'http://puremature.com/video/dirty-laundry' 2019-04-09 13:09:49,090 (80922f500) : DEBUG (networking:166) - Requesting 'https://www.adultdvdempire.com/performer/search?q=Alexis%20Fawx' 2019-04-09 13:09:49,598 (80922f500) : DEBUG (networking:166) - Requesting 'https://www.adultdvdempire.com/633680/alexis-fawx-pornstars.html' 2019-04-09 13:09:50,920 (80922f500) : INFO (PAactors:1396) - Alexis Fawx found in AdultDVDEmpire [... cut more here ...]

pedrolara-boop commented 4 years ago

I'm getting some similar errors on MacOS. Any specific test that I could try?

Tharic99 commented 4 years ago

So there's currently no workaround for this issue on these sites if you're running PMS in a *nix / Docker environment?

skinemax commented 4 years ago

I have a prototype workaround for this...

I installed nginx on my plex server, and created a simple config for a site:

/etc/nginx/conf.d/.conf ` server {

    proxy_ssl_server_name on;

    listen  <port>;   # I'm using 8<site_id>

    location / {

            proxy_pass      https://<site_domain>.com;

    }

}

`

Then in the PAsearchSites.pl, changing that entry to point to the proxy: searchSites[<site_id>] = ["<site_name>","<site_name>","http://localhost:8<site_id>","http://localhost:8<site_id>/tour/search/?q="]

This is working well on the one site I've tested it with, I'm working on expanding to more sites next.

insickin commented 4 years ago

If you get this running can it be incorporated in the agent?

Tharic99 commented 4 years ago

I have a prototype workaround for this...

I installed nginx on my plex server, and created a simple config for a site:

I'm not sure that's a feasible solution for a Docker environment though. Every time the container updates and gets replaced, you'd have to reinstall nginx..

skinemax commented 4 years ago

I'm not sure that's a feasible solution for a Docker environment though. Every time the container updates and gets replaced, you'd have to reinstall nginx..

Yes you wouldn't want to install nginx inside your plex container. I'm thinking of building a docker nginx container that would do this and be easily updatable, but it would run alongside your plex container. With the potential for a high number of ports required though it would probably need to be host network and not bridge.

If you get this running can it be incorporated in the agent?

It would have to run alongside plex, either on your server or another container if you're using docker. I'm currently using a check for what OS is detected in the PAsearchSites script and replacing the default with the localhost proxy version if it's detected as linux. That would allow redirecting to the proxy only if needed.

I will get my initial work up into a repo so that others can more easily experiment with it on your own. Is there a definitive list of which sites are broken in this way so I can start adding other sites?

Sample change for PAsearchSites: https://github.com/skinemax/PhoenixAdult.bundle/blob/tls-proxy/Contents/Code/PAsearchSites.py#L857-L860

Proxy repo: https://github.com/skinemax/PhoenixAdultProxy

insickin commented 4 years ago

I'd like a Docker, I am running Plex Server in a docker on a Raspberry Pi Open Media Server on a Raspbian install. So if the Docker can be installed on a Raspberry Pi/ARM system... I would like to test it!

A list with "faulty" sites would be appreciated, for example some sites that others are reporting not to be working on a Linux system are working for me, like mentioned here in this thread, "PureMature", "Lubed" and "PornPros" scenes are tagging for me after the various fixes so a list would be greatly appreciated! I don't know if this issue is related to the SSL thing or that is a Synology issue: https://github.com/PAhelper/PhoenixAdult.bundle/issues/381

If I remember correctly that this fault came from the fact that Plex server uses a older version of Python? (at least on Linux) If so maybe this is good news? https://www.ncsc.gov.uk/blog-post/time-to-shed-python-2

https://www.reddit.com/r/PleX/comments/88yfef/change_python_version/

arthurjames33 commented 4 years ago

I'm going to keep a tally of what is working and not working for me on linux. I'll try skinemax's fix in the next few days and update with what it fixes.

Note: I am running directly on linux mint.

Not Working Manyvids Evil Angel

Working Cum4k Deeper Holed Jules Jordan Kink LegalPorno TrueAnal (tricky exact) Tushy TushyRaw Vogov

Fixed TBD

Tharic99 commented 4 years ago

@arthurjames33, Out of curiosity are you running directly on linux or inside of a docker container? It's interesting how Kink is working for you, but it's not working for two of us.

https://github.com/PAhelper/PhoenixAdult.bundle/issues/383

insickin commented 4 years ago

The latest update fixed tagging Kink scene's, are you updated?

Tharic99 commented 4 years ago

Correction - Updated now and kink.com is working. I can confirm your list at least for Kink.com, Tushy, TushRaw and ManyVids (NOT working) is accurate for me as well @arthurjames33

insickin commented 4 years ago

I have 1 scene that I still can't get tagged: https://www.kink.com/shoot/34690

Also see the closed thread #383

com.plexapp.agents.phoenixadult.log

Tharic99 commented 4 years ago

Have you tried it as:

kink.com brutalsessions Holly Michaels 2014-02-23 34690

That's usually my go to for the difficult ones with multiple commas or other punctuation.

I've also noticed this updated kink.com is having more difficulties with the spacing. It won't match something that comes up as "Kink Com Brutal Sessions BLAHBLAHBLAH" but if I change it to "kink.com brutalsessions BLAHBLAHBLAH" it works fine.

arthurjames33 commented 4 years ago

@arthurjames33, Out of curiosity are you running directly on linux or inside of a docker container? It's interesting how Kink is working for you, but it's not working for two of us.

383

I am running directly on Linux. Learning docker is on my to do list, but I'm not there yet.

insickin commented 4 years ago

Have you tried it as:

kink.com brutalsessions Holly Michaels 2014-02-23 34690

That's usually my go to for the difficult ones with multiple commas or other punctuation.

I've also noticed this updated kink.com is having more difficulties with the spacing. It won't match something that comes up as "Kink Com Brutal Sessions BLAHBLAHBLAH" but if I change it to "kink.com brutalsessions BLAHBLAHBLAH" it works fine.

No, that doesn't work either...

skinemax commented 4 years ago

I pulled the latest and that fixed Kink.

XConfessions was the one that I used for initial testing of the proxy method, I'll try manyvids and evil angel and see if I can get it working for those too.

update: manyvids has the SSL error, evil angel appears to be a site change issue. I've added a profile for manyvids into my proxy repo and my Phoenix fork (for the change to PAsearchSites.) Now that I have two that work I'll look at building a docker version.

I did some testing on what cyphers are on sites that work vs those that don't, working.txt broken1.txt broken2.txt

pedrolara-boop commented 4 years ago

kink.com brutalsessions Holly Michaels 2014-02-23 34690 with the latest fix works for me.

It looks that sweetheartvideo (MileHighNetwork) also doesn't work on linux (Synology). It did work on windows.

2019-08-31 10:53:38,973 (7f6a17159700) : DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/library/metadata/32673/tree' 2019-08-31 10:53:38,980 (7f6a17159700) : INFO (init:46) - *MEDIA TITLE** Sweetheartvideo 17 12 18 Karlee Grey and Brandi Love Professor Love 2019-08-31 10:53:38,980 (7f6a17159700) : INFO (init:53) - Getting Search Settings for: Sweetheartvideo 17 12 18 Karlee Grey and Brandi Love Professor Love 2019-08-31 10:53:38,981 (7f6a17159700) : INFO (PAsearchSites:899) - mediaTitle w/ possible abbrieviation: Sweetheartvideo 17 12 18 Karlee Grey and Brandi Love Professor Love 2019-08-31 10:53:38,999 (7f6a17159700) : INFO (PAsearchSites:1083) - mediaTitle w/ possible abbrieviation fixed: Sweetheartvideo 17 12 18 Karlee Grey and Brandi Love Professor Love 2019-08-31 10:53:39,002 (7f6a17159700) : INFO (PAsearchSites:1098) - ^^^^^^^ siteID: 330 2019-08-31 10:53:39,002 (7f6a17159700) : INFO (PAsearchSites:1100) - ^^^^^^^ Shortening Title 2019-08-31 10:53:39,002 (7f6a17159700) : INFO (PAsearchSites:1101) - sweetheartvideo vs sweetheart video 2019-08-31 10:53:39,003 (7f6a17159700) : INFO (PAsearchSites:1113) - 3 2019-08-31 10:53:39,003 (7f6a17159700) : INFO (PAsearchSites:1124) - 7 2019-08-31 10:53:39,003 (7f6a17159700) : INFO (PAsearchSites:1136) - searchTitle (before date processing): 17 12 18 Karlee Grey and Brandi Love Professor Love 2019-08-31 10:53:39,004 (7f6a17159700) : INFO (init:63) - Search Title: Karlee Grey and Brandi Love Professor Love 2019-08-31 10:53:39,004 (7f6a17159700) : INFO (init:67) - Search Date: 2017-12-18 2019-08-31 10:53:39,004 (7f6a17159700) : INFO (init:72) - Karlee%20Grey%20and%20Brandi%20Love%20Professor%20Love 2019-08-31 10:53:39,008 (7f6a17159700) : DEBUG (networking:166) - Requesting 'http://www.milehighmedia.com/en/search/Karlee%20Grey%20and%20Brandi%20Love%20Professor%20Love/scene' 2019-08-31 10:53:39,276 (7f6a17159700) : CRITICAL (agentkit:1014) - Exception in the search function of agent named 'PhoenixAdult', called with keyword arguments {'openSubtitlesHash': '954b83368365cffb', 'name': 'Sweetheartvideo 17 12 18 Karlee Grey and Brandi Love Professor Love', 'filename': '%2Fvolume2%2FShare%2FSoftware%2Fsrv%2F2D%2Fsweetheartvideo%2Fsweetheartvideo%2E17%2E12%2E18%2Ekarlee%2Egrey%2Eand%2Ebrandi%2Elove%2Eprofessor%2Elove%2Emp4', 'plexHash': 'cff114e144c13d234bcfc076dbf8e37b6786d5d6', 'duration': '1467801', 'id': '32673'} (most recent call last): File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 1007, in _search agent.search(*f_args, f_kwargs) File "/volume1/Plex/Library/Application Support/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents/Code/init.py", line 210, in search results = PAsearchSites.networkGammaEnt.search(results,encodedTitle,title,searchTitle,siteNum,lang,searchByDateActor,searchDate, searchSiteID) File "/volume1/Plex/Library/Application Support/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents/Code/networkGammaEnt.py", line 107, in search searchResults = HTML.ElementFromURL(PAsearchSites.getSearchSearchURL(siteNum) + network_sep_scene_prev + encodedTitle + network_sep_scene) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/parsekit.py", line 482, in ElementFromURL method=method, File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/networkkit.py", line 67, in _http_request req = self._core.networking.http_request(url, *args, *kwargs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 370, in http_request return HTTPRequest(self._core, url, data, h, url_cache, encoding, errors, timeout, immediate, sleep, opener, follow_redirects, method) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 141, in init self.load() File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 181, in load f = self._opener.open(req, timeout=self._timeout) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 444, in open response = meth(req, response) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 557, in http_response 'http', request, response, code, msg, hdrs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 476, in error result = self._call_chain(args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 416, in _call_chain result = func(args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 96, in http_error_301 result = urllib2.HTTPRedirectHandler.http_error_301(self, req, fp, code, msg, headers) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 652, in http_error_302 return self.parent.open(new, timeout=req.timeout) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 438, in open response = self._open(req, data) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 456, in _open '_open', req) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 416, in _call_chain result = func(args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 1225, in https_open return self.do_open(httplib.HTTPSConnection, req) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-1e5ff713d/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 1192, in do_open raise URLError(err) URLError: <urlopen error [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)>

insickin commented 4 years ago

Sweetheartvideo (and probably Sweet Sinner) doesn't work for me either, see #376

saltydk commented 4 years ago

Have you tried using urllib3 using this library? https://github.com/piplongrun/muvio.bundle/tree/master/Contents/Libraries/Shared

pedrolara-boop commented 4 years ago

@saltydk can you share more info about how to test this library that you suggested? Should I just move to the Shared folder for the PhoneixAdult.Bundle?

saltydk commented 4 years ago

It requires a rewrite of the code. It is just a way you can add python libraries in Plex and thought maybe the dev didn't know.

skinemax commented 4 years ago

Have you tried using urllib3 using this library? https://github.com/piplongrun/muvio.bundle/tree/master/Contents/Libraries/Shared

Wouldn't this only fix metadata scraping and not images (because they get pulled down by plex code). The local proxy method to bypass https passes the proxy url to plex, so it benefits from the fix as well.

insickin commented 4 years ago

How is this fix going?

pilonull commented 4 years ago

How is this fix going?

I've been looking around on the pull requests and stuff and found this: https://github.com/PAhelper/PhoenixAdult.bundle/pull/365

I'm a noob though so I'm not sure how to integrate those fixes in to the plugin's folder.

pedrolara-boop commented 4 years ago

I get the "linux" error for Girlsway if I search the date only: Girlstryanal - 2019-09-29

2019-09-30 12:21:58,812 (7f9401665700) : INFO (agentkit:957) - Searching for matches for {'year': None, 'id': '87513', 'name': 'Girlstryanal - 2019-09-29 '} 2019-09-30 12:21:58,813 (7f9401665700) : DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/library/metadata/87513/tree' 2019-09-30 12:21:58,820 (7f9401665700) : INFO (init:46) - *MEDIA TITLE** Girlstryanal - 2019-09-29 2019-09-30 12:21:58,821 (7f9401665700) : INFO (init:53) - Getting Search Settings for: Girlstryanal - 2019-09-29 2019-09-30 12:21:58,821 (7f9401665700) : INFO (PAsearchSites:902) - mediaTitle w/ possible abbrieviation: Girlstryanal 2019 09 29 2019-09-30 12:21:58,839 (7f9401665700) : INFO (PAsearchSites:1086) - mediaTitle w/ possible abbrieviation fixed: Girlstryanal 2019 09 29 2019-09-30 12:21:58,841 (7f9401665700) : INFO (PAsearchSites:1101) - ^^^^^^^ siteID: 377 2019-09-30 12:21:58,842 (7f9401665700) : INFO (PAsearchSites:1103) - ^^^^^^^ Shortening Title 2019-09-30 12:21:58,842 (7f9401665700) : INFO (PAsearchSites:1104) - girlstryanal 2 vs girls try anal 2019-09-30 12:21:58,842 (7f9401665700) : INFO (PAsearchSites:1116) - 3 2019-09-30 12:21:58,843 (7f9401665700) : INFO (PAsearchSites:1163) - 7 2019-09-30 12:21:58,843 (7f9401665700) : INFO (PAsearchSites:1163) - searchTitle (before date processing): 2019 09 29 2019-09-30 12:21:58,843 (7f9401665700) : INFO (init:63) - Search Title: 2019-09-30 12:21:58,844 (7f9401665700) : INFO (init:67) - Search Date: 2019-09-29 2019-09-30 12:21:58,844 (7f9401665700) : INFO (init:72) - 2019-09-30 12:21:58,846 (7f9401665700) : DEBUG (networking:166) - Requesting 'http://www.girlsway.com/en/search/' 2019-09-30 12:21:59,441 (7f9401665700) : DEBUG (networking:166) - Requesting 'http://www.girlsway.com/en/search//2' 2019-09-30 12:21:59,996 (7f9401665700) : ERROR (networking:219) - Error opening URL 'http://www.girlsway.com/en/search//2' 2019-09-30 12:21:59,999 (7f9401665700) : CRITICAL (agentkit:1014) - Exception in the search function of agent named 'PhoenixAdult', called with keyword arguments {'year': None, 'id': '87513', 'name': 'Girlstryanal - 2019-09-29 '} (most recent call last): File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 1007, in _search agent.search(*f_args, f_kwargs) File "/volume1/Plex/Library/Application Support/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents/Code/init.py", line 119, in search results = PAsearchSites.networkGammaEnt.search(results,encodedTitle,title,searchTitle,siteNum,lang,searchByDateActor,searchDate, searchSiteID) File "/volume1/Plex/Library/Application Support/Plex Media Server/Plug-ins/PhoenixAdult.bundle/Contents/Code/networkGammaEnt.py", line 286, in search return results File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/parsekit.py", line 482, in ElementFromURL method=method, File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/networkkit.py", line 67, in _http_request req = self._core.networking.http_request(url, *args, *kwargs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 370, in http_request return HTTPRequest(self._core, url, data, h, url_cache, encoding, errors, timeout, immediate, sleep, opener, follow_redirects, method) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 141, in init self.load() File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 181, in load f = self._opener.open(req, timeout=self._timeout) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 444, in open response = meth(req, response) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 557, in http_response 'http', request, response, code, msg, hdrs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 476, in error result = self._call_chain(args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 416, in _call_chain result = func(args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 96, in http_error_301 result = urllib2.HTTPRedirectHandler.http_error_301(self, req, fp, code, msg, headers) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 652, in http_error_302 return self.parent.open(new, timeout=req.timeout) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 444, in open response = meth(req, response) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 557, in http_response 'http', request, response, code, msg, hdrs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 482, in error return self._call_chain(args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 416, in _call_chain result = func(*args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 565, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 404: Not Found

insickin commented 4 years ago

For Girlsway scene's you must use the scene ID of the scene

pedrolara-boop commented 4 years ago

I didn't know that. It says enchanced on the documentation, maybe should be changed then. :)

Tharic99 commented 4 years ago

They don't require the scene ID. It does make it easier, but you can use the actor name, scene name, date, etc. It works, just not always an easy match like scene ID is. I've got 400+ Girlsway scene's done, so I know it works. ;)