{"action":"created","issue":{"url":"https://api.github.com/repos/dulleh/akhyou/issues/23","labels_url":"https://api.github.com/repos/dulleh/akhyou/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/dulleh/akhyou/issues/23/comments","events_url":"https://api.github.com/repos/dulleh/akhyou/issues/23/events","html_url":"https://github.com/dulleh/akhyou/pull/23","id":118300627,"number":23,"title":"Initial support for Cloudflare protected streaming sites","user":{"login":"Gustorn","id":2189776,"avatar_url":"https://avatars.githubusercontent.com/u/2189776?v=3","gravatar_id":"","url":"https://api.github.com/users/Gustorn","html_url":"https://github.com/Gustorn","followers_url":"https://api.github.com/users/Gustorn/followers","following_url":"https://api.github.com/users/Gustorn/following{/other_user}","gists_url":"https://api.github.com/users/Gustorn/gists{/gist_id}","starred_url":"https://api.github.com/users/Gustorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gustorn/subscriptions","organizations_url":"https://api.github.com/users/Gustorn/orgs","repos_url":"https://api.github.com/users/Gustorn/repos","events_url":"https://api.github.com/users/Gustorn/events{/privacy}","received_events_url":"https://api.github.com/users/Gustorn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":18,"created_at":"2015-11-23T00:19:27Z","updated_at":"2015-11-24T12:09:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dulleh/akhyou/pulls/23","html_url":"https://github.com/dulleh/akhyou/pull/23","diff_url":"https://github.com/dulleh/akhyou/pull/23.diff","patch_url":"https://github.com/dulleh/akhyou/pull/23.patch"},"body":"This addition makes it possible to scrape Cloudflare protected websites. It keeps the current API, but adds an overload for POST requests, and routes requests through the newly introduced `CloudflareHttpClient`. The performance, after the initial Cloudflare handshake should be comparable to the previous iteration, but the first connection to any protected server will take at least - but not much more than - 5 seconds.\r\n\r\nThis commit also includes a basic implementation for KissAnime searching, but nothing else (no Anime page or Video provider).\r\n\r\nSome additional remarks / questions: \r\n\r\n1. The tab switcher on the top is probably not going to work with additional sites\r\n2. I followed the naming conventions, but `ANIMERUSH`, `ANIMEBAM`, etc. aren't very nice to look at in my opinion.\r\n3. I think I got all the places I had to change for the new search provider, but can I get a confirmation on that?\r\n4. Any features (or a roadmap) that you're planning and I could help out with? "},"comment":{"url":"https://api.github.com/repos/dulleh/akhyou/issues/comments/159248956","html_url":"https://github.com/dulleh/akhyou/pull/23#issuecomment-159248956","issue_url":"https://api.github.com/repos/dulleh/akhyou/issues/23","id":159248956,"user":{"login":"Gustorn","id":2189776,"avatar_url":"https://avatars.githubusercontent.com/u/2189776?v=3","gravatar_id":"","url":"https://api.github.com/users/Gustorn","html_url":"https://github.com/Gustorn","followers_url":"https://api.github.com/users/Gustorn/followers","following_url":"https://api.github.com/users/Gustorn/following{/other_user}","gists_url":"https://api.github.com/users/Gustorn/gists{/gist_id}","starred_url":"https://api.github.com/users/Gustorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gustorn/subscriptions","organizations_url":"https://api.github.com/users/Gustorn/orgs","repos_url":"https://api.github.com/users/Gustorn/repos","events_url":"https://api.github.com/users/Gustorn/events{/privacy}","received_events_url":"https://api.github.com/users/Gustorn/received_events","type":"User","site_admin":false},"created_at":"2015-11-24T12:09:14Z","updated_at":"2015-11-24T12:09:14Z","body":"After some investigation, I think that moving the search to Hummingbird would be a good idea (if you decide to go that route). The API is incredibly easy to use: Sending a `GET` request to `http://hummingbird.me/api/v1/search/anime?query=madoka` results in the following [response](https://gist.github.com/Gustorn/8600ee4cf3147632dfa3). \r\n\r\nThis contains basicly all information that's required for both the search and Anime page, except for the episode list (which would have to be changed anyway with this method). This would have the following benefits:\r\n\r\n1. The result is sent in a compact JSON format, allowing for really quick parsing (no need to parse whole HTML pages)\r\n2. Reliable images with semi-consistent quality\r\n3. Possibility of advanced sorting on the search results page\r\n4. The ability to use the same exact entries between the search and anime page, which would cut down the number of network requests (and increase the performance in general).\r\n5. It does have have a MAL ID, which would make scrobbling much easier\r\n\r\nDownsides:\r\n\r\n1. Some providers would need a bit of a rework: AnimeRam's regular search is abysmal, but the searchbox is pretty decent once you already know a series' name (If you want to test it: `http://www.animeram.me/wpa-ajx/anm-sch-lst/?q=<URL encoded query>`)\r\n2. Quite a bit of work. Also needs a sensible design for the provider selection (I think it would be nice to have it on the anime page, with an option to set provider priority in the settings).\r\n\r\nI think I'll test how it would work, you can see later if you like it or not."}}