diff --git a/rtv/mime_parsers.py b/rtv/mime_parsers.py index e782151..1a6fad5 100644 --- a/rtv/mime_parsers.py +++ b/rtv/mime_parsers.py @@ -128,7 +128,83 @@ class RedditUploadsMIMEParser(BaseMIMEParser): return url, content_type -class ImgurMIMEParser(BaseMIMEParser): +class ImgurApiMIMEParser(BaseMIMEParser): + """ + Imgur now provides a json API exposing its entire infrastructure. Each Imgur + page has an associated hash and can either contain an album, a gallery, + or single image. + + The default client token for RTV is shared among users and allows a maximum + global number of requests per day of 12,500. If we find that this limit is + not sufficient for all of rtv's traffic, this method will be revisited. + + Reference: + https://apidocs.imgur.com + """ + CLIENT_ID = None + pattern = re.compile(r'https?://(w+\.)?(m\.)?imgur\.com/((?Pa|album|gallery)/)?(?P[a-zA-Z0-9]+)$') + + @classmethod + def get_mimetype(cls, url): + + endpoint = 'https://api.imgur.com/3/{domain}/{page_hash}' + headers = {'authorization': 'Client-ID {0}'.format(cls.CLIENT_ID)} + + m = cls.pattern.match(url) + page_hash = m.group('hash') + + if m.group('domain') in ('a', 'album'): + domain = 'album' + else: + # This could be a gallery or a single image, but there doesn't + # seem to be a way to reliably distinguish between the two. + # Assume a gallery, which appears to be more common, and fallback + # to an image request upon failure. + domain = 'gallery' + + if not cls.CLIENT_ID: + return cls.fallback(url, domain) + + api_url = endpoint.format(domain=domain, page_hash=page_hash) + r = requests.get(api_url, headers=headers) + + if domain == 'gallery' and r.status_code != 200: + # Not a gallery, try to download using the image endpoint + api_url = endpoint.format(domain='image', page_hash=page_hash) + r = requests.get(api_url, headers=headers) + + if r.status_code != 200: + _logger.warning('Imgur API failure, status %s', r.status_code) + return cls.fallback(url, domain) + + data = r.json().get('data') + if not data: + _logger.warning('Imgur API failure, resp %s', r.json()) + return cls.fallback(url, domain) + + if 'images' in data: + # TODO: handle imgur albums with mixed content, i.e. jpeg and gifv + link = ' '.join([d['link'] for d in data['images'] if not d['animated']]) + mime = 'image/x-imgur-album' + else: + link = data['mp4'] if data['animated'] else data['link'] + mime = 'video/mp4' if data['animated'] else data['type'] + + link = link.replace('http://', 'https://') + return link, mime + + @classmethod + def fallback(cls, url, domain): + """ + Attempt to use one of the scrapers if the API doesn't work + """ + if domain == 'album': + return ImgurScrapeAlbumMIMEParser.get_mimetype(url) + else: + return ImgurScrapeMIMEParser.get_mimetype(url) + + +class ImgurScrapeMIMEParser(BaseMIMEParser): """ The majority of imgur links don't point directly to the image, so we need to open the provided url and scrape the page for the link. @@ -156,7 +232,7 @@ class ImgurMIMEParser(BaseMIMEParser): return BaseMIMEParser.get_mimetype(url) -class ImgurAlbumMIMEParser(BaseMIMEParser): +class ImgurScrapeAlbumMIMEParser(BaseMIMEParser): """ Imgur albums can contain several images, which need to be scraped from the landing page. Assumes the following html structure: @@ -257,8 +333,7 @@ parsers = [ VidmeMIMEParser, InstagramMIMEParser, GfycatMIMEParser, - ImgurAlbumMIMEParser, - ImgurMIMEParser, + ImgurApiMIMEParser, RedditUploadsMIMEParser, YoutubeMIMEParser, LiveleakMIMEParser, diff --git a/rtv/templates/rtv.cfg b/rtv/templates/rtv.cfg index 0cf32ee..84e96b7 100644 --- a/rtv/templates/rtv.cfg +++ b/rtv/templates/rtv.cfg @@ -63,6 +63,11 @@ oauth_redirect_port = 65000 ; Access permissions that will be requested. oauth_scope = edit,history,identity,mysubreddits,privatemessages,read,report,save,submit,subscribe,vote +; This is a separate token for the imgur api. It's used to extract images +; from imgur links and albums so they can be opened with mailcap. +; See https://imgur.com/account/settings/apps to generate your own key. +imgur_client_id = 93396265f59dec9 + [bindings] ############## # Key Bindings diff --git a/rtv/terminal.py b/rtv/terminal.py index 39285ec..3ed9e64 100644 --- a/rtv/terminal.py +++ b/rtv/terminal.py @@ -61,6 +61,10 @@ class Terminal(object): self._mailcap_dict = mailcap.getcaps() self._term = os.environ.get('TERM') + # This is a hack, the MIME parsers should be stateless + # but we need to load the imgur credentials from the config + mime_parsers.ImgurApiMIMEParser.CLIENT_ID = config['imgur_client_id'] + @property def up_arrow(self): symbol = '^' if self.config['ascii'] else '▲' diff --git a/tests/cassettes/test_imgur_fallback.yaml b/tests/cassettes/test_imgur_fallback.yaml new file mode 100644 index 0000000..d91dd9f --- /dev/null +++ b/tests/cassettes/test_imgur_fallback.yaml @@ -0,0 +1,697 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] + Connection: [keep-alive] + User-Agent: [python-requests/2.17.3] + method: GET + uri: https://api.imgur.com/3/gallery/yW0kbMi + response: + body: + string: !!binary | + H4sIAAAAAAAAAw3KsQrCQAyA4VeRzIUr1Ol2KQ5ugsuBxLuoh7HFJCeU0ndvxo//X6GgIcQVSGQW + iHCe/si1HDJXmuxeC3Qg9Guk5jWFIYUXMpMsKSy3/vO4VD++ZO+5+DCerrB1oC1nUoX4RFZyG1pz + Hvth2wGSlP47dAAAAA== + headers: + Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [keep-alive] + Content-Encoding: [gzip] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:41:51 GMT'] + ETag: [W/"916b2c770de5db3f150773d8bcf22001bfed0ff3"] + Fastly-Debug-Digest: [a2793844ca4503867a65d6f254f258f0ee7f945487a64ad7c417e4b80e273f38] + Server: [cat factory 1.0] + Vary: [Accept-Encoding] + X-Cache: ['MISS, MISS'] + X-Cache-Hits: ['0, 0'] + X-Frame-Options: [DENY] + X-Served-By: ['cache-iad2128-IAD, cache-ord1735-ORD'] + X-Timer: ['S1500792112.716885,VS0,VE31'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] + status: {code: 403, message: Permission Denied} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] + Connection: [keep-alive] + User-Agent: [python-requests/2.17.3] + method: GET + uri: https://api.imgur.com/3/image/yW0kbMi + response: + body: + string: !!binary | + H4sIAAAAAAAAAw3JsQrCMBAG4FeRfy6kUKfsUhzcBJeAnMmph2mLyUWQ0nfvjR/fikRK8Cu4lKXA + 4zz/KEs6xCw8610SOhT+Nq5qG9wQnEz04uD+t/7zuIj9xPpekvV4umLrUFuMXCv8k3Jls5I247Ef + th3U6oRacgAAAA== + headers: + Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [keep-alive] + Content-Encoding: [gzip] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:41:51 GMT'] + ETag: [W/"d99c01cf9fb9bc8580acdbedd472346797ae299e"] + Fastly-Debug-Digest: [2244f5f089e388650f4e9923c2e4df7bc03ee0e53d3131c68916c412ece3cf59] + Server: [cat factory 1.0] + Vary: [Accept-Encoding] + X-Cache: ['MISS, MISS'] + X-Cache-Hits: ['0, 0'] + X-Frame-Options: [DENY] + X-Served-By: ['cache-iad2138-IAD, cache-ord1745-ORD'] + X-Timer: ['S1500792112.879521,VS0,VE29'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] + status: {code: 403, message: Permission Denied} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.17.3] + method: GET + uri: http://imgur.com/yW0kbMi + response: + body: + string: !!binary | + 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 + headers: + Accept-Ranges: [bytes] + Age: ['0'] + Cache-Control: ['max-age=60, stale-while-revalidate=600, stale-if-error=86400, + public'] + Connection: [keep-alive] + Content-Encoding: [gzip] + Content-Length: ['12466'] + Content-Type: [text/html;charset=UTF-8] + Date: ['Sun, 23 Jul 2017 06:41:52 GMT'] + Fastly-Debug-Digest: [7cae0ea75f411241b1ac71b061ab25fd2922d154535ce77bff25d47b872c53a5] + Server: [cat factory 1.0] + Vary: [Accept-Encoding] + X-Cache: ['MISS, MISS'] + X-Cache-Hits: ['0, 0'] + X-Frame-Options: [DENY] + X-Served-By: ['cache-iad2142-IAD, cache-jfk8141-JFK'] + X-Timer: ['S1500792112.451030,VS0,VE37'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] + Connection: [keep-alive] + User-Agent: [python-requests/2.17.3] + method: GET + uri: https://api.imgur.com/3/gallery/yjP1v4B + response: + body: + string: !!binary | + H4sIAAAAAAAAA41TTY+bMBD9K3TOKAEHQuBSdXe16rG9VWoq5IABd42NsAmiUf57x+ZD2b20Nzzz + Zt6bN8MNSmooZDfgJWQw/f4WXqMn8MFwIxhGvrLJ956b4aI/eS/Km9TgjVQazyivE3T6jNCS6aLn + neFKQiYHIXzblBneYoMwOqZBQNI4wp5TZ1vyltbsvK95hcVU4tMwJDf9wHwYeWkayEh48qFhvG4M + ZIf06IPmf2y7lMQkCQIfrpyNGrIoCDBNfLhQWS7FSRKckiBJwzSJHFQZtiqr6FX13L4rKjQSSl2N + 20OzYh4DqkHKyeorCjVIkw+9WFusIesYOcXIFKU+cJ3TcmvEZd4qbfIr76lYZzO0RsU/byCptWbj + KLm2XuYfwpUSQo2sxxqSWD+MMlTkKL7F0CE+HtJwRXFZb9wXWrzVPUos84Zq9AN+FC0Jn77P4zCJ + lkL88uU5fYV3aDvCto51EJ13vWrVY+zdwgF7CFWrhWu2yAUQZrikFvZo30M10kmcyX7iRLf7/Rcq + LPP5TgL37QotBzpaUyFYP212qo4XmHxd/HLveSs+tF2EqcaYLjvvz3u+42099LtCtef9cuU7i/EB + 7/D6T6gDua75cohHEpL0gKNy+fY/5c4mVGgXNetHRIvLyN01oegIZQ8dGhESt9lSjdaWMIp96BSX + xqVIZH+GQvXu5yJRMp+euAztsqA75gfcs9Yrk0aPB3tGQXD/C/xJvevyAwAA + headers: + Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] + Age: ['646'] + Cache-Control: ['max-age=60, stale-while-revalidate=600, stale-if-error=86400, + public'] + Connection: [keep-alive] + Content-Encoding: [gzip] + Content-Length: ['558'] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:41:52 GMT'] + ETag: [W/"d15c07f3545be043db49111ce9a2c1f2ffcd3f6c"] + Fastly-Debug-Digest: [ae54aa40bf3682f3981ed7edff859cf9919f30c245b7867aad44cdd61444b1b5] + Server: [cat factory 1.0] + Vary: [Accept-Encoding] + X-Cache: ['MISS, HIT'] + X-Cache-Hits: ['0, 1'] + X-Frame-Options: [DENY] + X-RateLimit-ClientLimit: ['12500'] + X-RateLimit-ClientRemaining: ['12496'] + X-RateLimit-UserLimit: ['500'] + X-RateLimit-UserRemaining: ['495'] + X-RateLimit-UserReset: ['1500793797'] + X-Served-By: ['cache-iad2141-IAD, cache-ord1738-ORD'] + X-Timer: ['S1500792113.671449,VS0,VE0'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] + Connection: [keep-alive] + User-Agent: [python-requests/2.17.3] + method: GET + uri: https://api.imgur.com/3/album/qx9t5 + response: + body: + string: !!binary | + H4sIAAAAAAAAAw3JsQqDMBAG4FeRfxYiaIdmL9K9Y6BckysNRMXcpRTEd++NH9+BRErwB7jWrcLj + vn6p5NTFknnVZ07oUXlvLGob3BgclVdbgtt/V73YLqyfLVnOtwfOHtJiZBH4NxVhs5I24zSM5x/w + TIoxcAAAAA== + headers: + Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [keep-alive] + Content-Encoding: [gzip] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:41:52 GMT'] + ETag: [W/"3d03d8f9679eca66205ee33a149da3bfeaba9164"] + Fastly-Debug-Digest: [b95c41c703e904c145c615cb1569a4d8cd685a4c48c40c1e2322fe3184806bf9] + Server: [cat factory 1.0] + Vary: [Accept-Encoding] + X-Cache: ['MISS, MISS'] + X-Cache-Hits: ['0, 0'] + X-Frame-Options: [DENY] + X-Served-By: ['cache-iad2130-IAD, cache-ord1724-ORD'] + X-Timer: ['S1500792113.825603,VS0,VE28'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] + status: {code: 403, message: Permission Denied} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] + Connection: [keep-alive] + User-Agent: [python-requests/2.17.3] + method: GET + uri: https://api.imgur.com/3/image/qx9t5 + response: + body: + string: !!binary | + H4sIAAAAAAAAAw3JsQqDMBAG4FeRfxYiaIdmL9K9Y6AcybUNRMXcpRTEd++NH9+BRErwB7jWrcLj + vn6p5NTFknnVZ07oUXlvLGob3BhcXujNwe2/q15sF9bPlizn2wNnD2kxsgj8i4qwWUmbcRrG8w+b + lFZccAAAAA== + headers: + Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [keep-alive] + Content-Encoding: [gzip] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:41:53 GMT'] + ETag: [W/"f771451aaec75e62af9d8678cf745751fef743ce"] + Fastly-Debug-Digest: [22ccf6e6ad35e1d05d76cec4b14c20f5c4e45734ff90684834f09a8a596ccd50] + Server: [cat factory 1.0] + Vary: [Accept-Encoding] + X-Cache: ['MISS, MISS'] + X-Cache-Hits: ['0, 0'] + X-Frame-Options: [DENY] + X-Served-By: ['cache-iad2127-IAD, cache-ord1722-ORD'] + X-Timer: ['S1500792113.977327,VS0,VE26'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] + status: {code: 403, message: Permission Denied} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.17.3] + method: GET + uri: http://imgur.com/a/qx9t5 + response: + body: + string: !!binary | + H4sIAAAAAAAAA+19bXfbOK7w5+2vUDV3184dvzuxYydOmqZJJzttp7dJd3bvpI+vLNG2UllS9RLH + 281/fwCQkqg323Hbc+49Zz2d1qZIEARAACRA6vj5q9/Ob/7x/kKZBwtLef/x5Zurc0WtN5u/d8+b + zVc3r5S//3Lz9o3SbrSU68Az9aDZvHinKuo8CNxhs7lcLhvLbsPxZs2bD80HhNLGZuJr3ac2DSMw + 1JNnx9SJpdmzkcpsVXlYWLY/KgDVHgwGHAK1Yppx8kyBz7Fl2p+VucemvJUPzaaOHfiNmePMLKa5 + pt/QnUVT9/3TqbYwrdXoN5fZP19rtj/stlo1+N+s7cOXffzSgy89/NKHL338cghf4H9TVTxmjVQ/ + WFnMnzMWqAKDwAwsdqJIHyp/Rn9fLWahN1Ru5kxZOH6gaEvmOwummAttxnzFsZUAHl3ZAfNsFhw3 + OTAOeMECTcFB1dmX0LwfqToMjNlBPVi5TFXEr5EasIegiaQ50uea57NgFAbT+qGqNGVAtrZgI/Xe + ZEvX8QKp+dI0gvmo3e4eihFFH7md50ycwJda2Y5pG+yhptjO1LEsZxl3l+vzM1stHc+QW/Ph1xR3 + 7gQO/Dszp/QXfF2wBT0BIQk9/GazpfTLY5oemEA3XtuHEbMYDP8VAbe0gAHJo5/T0LZXNUUPA1ZT + 7k0/1CzFDxxvFTALpGhWg5rArHgcGU4+K6WNwXzdM13EShrie2T30gzmSq/XancUpLzfKKeS7rgr + z5zNZdacR2VKp9Xuc2GqgbTojQxzZSn5e/3jWf3cWbhaYE4sWVCuLkYXxowdZZCgKUTCbeo4BBQv + waKma89UMb2aTb9BFKL5xKnanGr32Kje7Tx0Ow2q7Zv/ZDCHqUQ9+X5dDHoPg16qCyr5nl20ew/t + dBdUku9Cc12L1QMn1Od1aul6DOC5js+M7Xo64NTKz9CFj8BNXUN5qt+YFjt3LMeT2PhTRzd6XX2r + tlfYrdR2PVL7+xJSsagnw5aUn6Av6R7QrcWDXph2c2Y5E81qoP5tH7RaMBn6+x2SwEQEv0c3mmUx + b1XYT9lwNAvVLmiJqBuJes0737F/dthiknBUmCWwKVLnvEoDq5+GnjUSlZIKWvPLwyA4gD5Qt8Ms + fJJJSKmjbXEHM/oE1KH2D8U8Tf7n9fof5lS5ulAGn05KmB4xWZJUW7dCg6EMNE1W90P9s0+8buVF + pHly/PwPZhvm9FO9XoBChpK6Zjs2UM7K0KqADjIraNq5nuMyL1iNVGc2BBpKM20jlGfrkJLYu2CG + qUEHtrVSwNAwZiuabSjVhfZQJ9s9VHr7LfdhL4P/opHvW+5ZVhzu0HAWmmmP75lnTlfSMLQ262sT + dqhNB61DXe8ZU/jWPTCMgdZpdQ/31ZQdStHDNwM2RviyCUqZ2Gyj6WSoGTCbZVeh3el22/uDzlMb + tdrd3mBtI9cdm0aqUb/Xae93+10Y2EG/tK1mDYEBnmMaGZYTvYt4fjr1nMVoOgH2MM9DSdsMGtF7 + EvGktq6mf07rfUBGiMPCmZjoFZRDMR3/RwwMweKg0Odiacr3uoPDQ2DywTbtn0qUJZs8dWrKUyMA + Hw7mIkmzBOOFWdBvugWfUlkyYodrm8EYh8BDvn5xLW21DRtTaqQAKGnwLNW2V+XrFd/3Af6smIFh + ME95Pxv47QWmbrHhjs3ccGKZYIS8jLT4YjU61XQ2cZzPwntCkCeFywPJG8VBj31PV+UKaUsjaerw + Imj9481V486dbaI6rQKjT6Kw+VA2GSuTO4bZ1usxOp1OtoI7JLukSnBhTb1dyznLrIG67SLDm5Zu + XfOM/Fj8cLHQvNXY0jzgAB/wBkApquQkoIAqc2JUsUkvGGPxUvFp86WxaRDftRPJSz/mYAv8Tcv4 + Gf1faeHwNUUJ9QWh8RCow3ifyNfnbKHh5o5ay1QmyYaav7PJNWrdzHNU5gmcRKlmqpGdgHp85mce + ug5SxdSsM9pNgHpfc3o0QeSaaZ4+F1Vr+YoBSlhQhFTTp6anX0Zf+bcx0Hcxxk0we/ZYBOtLCMuY + umm7IQH0cFXvMYPzOA9DTUF4fJb+dtzkPJOX+8IBBwcTnfBDcMJTfCU/+k6713gprIQ9vWjBZTLX + sVaw7pGXWydJh3kf/LjJ9+2OJ46xUnRL82GBHa1iDfNeMY2RCg6MWwejByoYgEFp3r5Fn2fP4lZ6 + oNVRxMDeMq8ORlNnc8cyJCBx1cBxJ5ondyswQeSgsc5wCkiifKzl1yNq1IhDoz0AxXJmjqIqhgbI + 3GlTZ6R+ffGC3QO8Fy+GL15w+C9e1F68wEkLZfAY7QQ9xcYvXjw+ZhffEoJYhXrKUea4qZ0kuufY + dzW7CMEFs8P6JLAVWu1rnucs64aztNf1CfjVsZ1a4GeEVjFzwPqdFFGteedM/Jh0c5Pkd0d6IShO + ryWreEzh0J4jJY6b0H+p1GyN7ATovSt22Jae2WwJBVPN8hniiuXrUXwaQbWJA2pC2RFLas2JSF/5 + Buh6/DKokDPfkObFbpgQGI4JwaKNWfYkTCSiuK6/O02gsYwI/n4SHpprGo7ufztNABBHxIAWFjoR + gIz5BFykKAohoxk8FLIzQsY9ODKmLxgV/3wSeebMciVLMtebzK6H/q44ITiOjs3ASOLP03J8jptF + KkvWd+A5a+WWR66JhgqVZ33qgC/hKXNtMQnBDfDK1GUWABpxX7QuqU5NikQ8cHaXcOqX04y+kvF4 + Uu+uZ95r+mpnDER7joP4sQkLQTR/oVlWHdz6mWnXwbYV7RUKiD9phj53TJ3tLFwxgEjgFfG7FNl1 + HktxA3PqgWMXOVm5NaZrhTBSH6T5M2u4c/eUhksLkj93z/7cuYQ/cgP4SYT4i7Zwj2gVRt/AoQL9 + PpqEQeDYVMKjaCOES7/9ubMcIyR/RNZKFGoek37zxdmoCysycPMcCpthKFBVaBQTxwNqjlRY6tFu + LkwS08cdjKFpQ1VWB/Onfz5SeL2h7djsSHFAi0wtZzmcm4bB7COFdzLstNyHI4VvcB7Qd8F1CogN + +1CiKhpGHm88zQaXx2O2DquswAsZTmBO2BI2aZmQsVg6Scv6eJbyJ3Ue5KxzCgqBQpqB2xni8oqI + JJfzrdo6X5rxpyelclOgqXKClPP50M3LhCrpgez+ha7laIZAO3GRizw+8qM9pgXslVBtMREcWkz6 + T/QBo9awhFuoxaaao6dmsPXDCW/zkX4rFMTabIW36O/eNGbmtFwfwPMb57U5vbLvnc/MyCgGJB9I + PdXkqHLMInpxNfE302COEjjK66vL74EzBsRnzC5HeqF9ZmdvodZO6L6F1oqmYPunGM4iAdUKpa5I + RQu+F3QkCy8tU6KqWXkvbBF1HIBxwO2Gk3eYPOD4wfrWiejXY7MeIR8ZHmYxnnhAS6ncCqqog9R0 + z1aI55zPAJahwaLf1u6zEzO04qH5oIXyNSI5Qkg81FrnmwSlkz2FQDy6dBMlKrAoor3GMk8db5GB + gkUYtgrmDiKFAT1hbdT8zsga2ASfNkKkrQmAFQYOxtotFkCZM52q6f5VsR32ZRPo/PiJq5voVgaD + GkeD2rB1QW3XVzluIh2f5GZsv/CVNI9vzmywquj0rPdCCzYURFuPzUwffWA1Y1YlZlPNU5Pr1Zer + EbQJLc27hvIrmD74XDHt9V5gNGMuLdO9sqdO/Txh1RpqrlfACDAaAGngbxpnVGXDSEO3XNdmVIis + ePkgaQtP+SmlN5Rol02u0khtaVGVFAQ+RF4u76RZ6GFNnIfCjbRkn0neH04hXVglxUGhp7nCSjEv + W0WzJuEi6TwDNK4NPjKYXbVAvXoM893qE4Rl+PWFY0g9pqtHe15sGpDRqLs5GxWDdT1nASs3cFZc + JyCCFcqgDJdArtMuucqcf1vob6pNYbgnqa9CsPN2HqqCg5u31+zFFoLKEHkL7HnIJP27XrcdHmJc + txf8JMw2fdY24l4pM3ZAZt0n5cgYmPpx8lcw/50WJv/1yhyYzX3uxLOS4s0iy8NJagnXt8d6a4S/ + 84Pd+t9ss0S8UM0TS5qxCi4DfN1xGX3jXk8uXtYkN/63yR04pDtO8hR6OYxSaUKFzcDgRVsWZcFr + WJvDspgPCWOgcfryxw9vCnJs1+mKuOZGf24zNTZL3DZO27cRnZRcQhec6+9F4oGcFYPTvt7q1zut + DVzeQLVSPMpdprxTskXJroByeGWFkq8e8kY7blC6WVLilsS9cAcBRHfBwJUSmxy5jZYCV4EaotWv + C3bFE5vnaxPeoW1ORYg8qxATPwIrxvsrRWgnC0XwcOoiz7WcGOUjppLyx5tnVzTEeOcfqBaAM0z6 + zUZPE1FEr5l248qUU4q/ms2sOl/frzM8T0QUMZqaD+ieIdH4JjutcZL4Y/5JPiaMUcY6/Da5Bxxv + FlA5Aoi2798494zn558W75mnQp/cp7pzYE2h4xYmxvDKdnewl0vqZXMo9K8AUXFCTwmYthCxUHIb + ZAc72VKQR02PNoQZRRowjxWKhKrd0c5GH/MroqJoVi7gKJDC5BVnCtPN1CyOG48hfguGUlSyJB5Z + hGE6wpVQzfaXzPNxY3CFLPoSMp/P+m/AMAl/4bcN+OWD2xLtUjlBnH5YJ8oLMuOk7t2R5UHx8jB4 + KbIU7YpwxZAVcFrxmXdv6t/E36JI2JYoxSEwgZb4DXrfMrF4d6TKgmNbIsaD3wKreELw0m+Yq3FU + vDgevjkGLjCC4hCtBhlFZep4POuM5O3s/dW34WhGKBZEybeJjCdzNTJw/ADXuvD0FnhtHTbfJG1y + RDPGVNkY5NwGxTWBzhyOkfngto8yhMQmC9CRI6bYjgj90ZaaQJbXUsCGQg/BXAuUe9OhU3pktGLK + eNE0OolaGE8glscWzr1mYeIcaFg16Zx+83xHxWAW4wmSu1MtgsGJFsGPSp+CcWhJLEVvFDzHYKWI + 8t0xjEERJI5nBvxGNOP6BbMZ5m+4Jr9lM4IEgONFX9PY8M3PJ7jy5EzfhQt38zZbqvoWjurEeVBm + Tj1w6ny1EPiyjK9f/0sBAh44kqDUJ+FkgmzeFDLYCGnDHnj5o8woA+0z7rvVwzKyZBvxSNvN2a8X + ytsL5eP73QYi9fr0cWwTLt+8qCvNAZJrp0auzeozzwndOg8POp4seKlWPI4llnHRmTWe8qAqoK5C + +Lnf6x9oLdY7OOwd6p1J95C19QHrdvvtbrfVb7Hk1KSMhCyGf0r28fHQKO7hA0JT01tIG08ucfZP + fzqedwur1sVm63Fz3sV6WDXDbqitFrddMN+nLaRo9OnGUuYOgk49w313XvqnWP8kicjDo3gIcae2 + kwyvEBvbUU/eOcpSW9FqiHrkeP2JxpXqn5++FgjIwUHKOaI934SrT8ByPYornPtXlYXih3yFsR7J + tHAmNaM05xJJzeqqWE7oCGgdNWGMeFTkpjRA3MJmy7rUqjzewSuVhKxBtC7wuXLuGIxLWq6OpU2Y + dSKmjjhrr4lMbwoFU8J4qoTPK33O9M8ooycwwxhtxoBdhnlpgb3jUDfuFuVHolumO3HwqMmmHEJR + L7WzK1NOhzHLD2PL75bZkkL4hVATJLfXlVScaKgYmpoKvAstlTtzVhb2ksTLY3j9QVZWCtq51Mqx + DCFi2Ky+9GDVkY7OJvJc0EAtnJb8kMZIHU8sDWPdH8G9h3YKtVN0EkP0Ptxyo5EeFYUmRbZDyTQr + Yl+kP/MswOse6Gyvq/kBo5URXbUC8uoscQkutg6WbIKnEYdbyfCOsvr95fR/g4wWCykQehGWeYpl + mQOoRXABC81voD1YPPpnWKhg4mbcT+C9imbljhLfFo7GZGgeSO0r+Pu4yZ9s3VTEp9/gP09urId+ + AD7/yTn9u775cZMPsOSpm2bd+0gtxIb0p/w0FZVyczPpslhU1h1OKR+6zNaXmv4ZvTsb5DT5HjNY + +UmWR7l2SiK53ZpIsEooty6BfjuEb7gjDn+XIXkjGUkZPe7C/zDE3lByEf5dhhjVKEBsTVrSd6HY + PFxMwP/6Bd0E+mGjk5BgmSIer5z1MSISClBPwHW7rEo343XlTGL+8XYGkAa9vQUs8DDxU5gAVPZg + /VHD9MDvNUxDtANvNTZ8WxkplSjdqsf6HW3QPhwc9rv7Bmsd7rdbk9b+dDDR+52+0X8BzaSodKdy + JI0nOp+YDCB/IvLZdkcitTvtIXvPGJYBsyd+845OcjbbjTb8Eb8aC9Nu3Pmpc5IbSGJOq/jImSp3 + /4UglNEISIHhtikYZaOyJ06uRjurjaUHvkG18vRTndEdK3d+k2rzk6iAfKvRSRCvKD8rlQj7yt7R + s8dnJYc+Y8LOgh9A107j/zJZG4T+N1H1+dXFpxOevPdvqu5E1Xo9TdmSTLWdjkfTPXXtg/Lz0Yn+ + +baOxP1am/t5iu6lgEzjwr43PcemKP+o4IC8yEW4Jgj+MPXsD/W2eSsje4vY3sb3dKXx/ZQ/CC8q + nl9fD7OPNgLPXAJWAN30X7H7PGD60GGdoibX4YTf6ZJryOn1MTCthlStWokRrOzlAc4dPyhBQZFa + 5hvqhv3Rs4qbVlIZWQWNfYy96cXtKynxKmrs6J9ZUNp44jlLn3kUAdgAyJyBPigeQgn98UqXMnJ9 + fczX95iuuYE+18af2SrTsNJ7Y/y3P9+/OcPPa/vVXx8Gv/794eOH31ezL4fs4eyVef3Lm/f1twWo + L3yzBHGAu2kLtwDehAVa6bgKNRKztYmF1CuhFH5M+yWHS3VyVQrolRezQDvHTcpZAXZfVbw1bbVw + Ql8d/gG/9MC8Zyo/6V5T+cUZqjhDA789WP+Y9uwd3ckhta2plqNr1nXgeNqMiceYgy5XoQs/YMrD + Vw6RljFDFUTZCxT24FoOXSVQ44k18OR3ZumYyBA4fGo+h2fytShD9R+4kYJXi86xXhyIFmkOFR/Y + 4gfyNaEm8xuIQLyQ41crDtWv1zdnN1fnj7fiOsXb5hzQZnUYxW0Th5I0ocTIGjrrN9pEEOvxU43O + 9uxARl1buOJ2kzIyYpX2fvuw32u197tQj6/mz3GHBqqEddcaHEgkvm1KOhUbZ2n+mgXKW8djyiu+ + nyoR/RyqR3eUnoUz6Agzlw9ypP+dLmw4aP0Z1AmsPpwweK58YJjPwfj+lu9qOoaQlzsSHPGu83Gk + CY5nQ6Px8Fs1h+pP+vSg1e2qyIeZtkA5kjnBm2xghGhXyoX4eSGZAzRcWAG+Ou5tc8nY5yzZz3G1 + qZgBUUuiOYixgnfeArEU0r4AJiXJmMDz2jGAZwZr5FhxJhJ+QhtP5jLjuUjFmGu+wnGK0lEVPCmM + 7FGWTmgZdiXAbUkTVP2OTMKDtfq8aEbkOLRvdDuHLeJQdNa5nEdiu6qm3vkf0AcjURe8uIxa5zg4 + TZ6U8HA6gXnUah1KxH+DJAnp7qQIcl7RcGmfoIJCctItxHESGIzbnzJmNBSCxYmfAfdE2kYjqRva + iqiLZBOnmHej2o1oHIkvX4ajEEvHpoVE5ykbxK1LCBssY8Km52lE5ks6ei0ILZDJ05nG6VKeGqZ9 + 7DTS93Hz3DBc6VHJQOIqdVR7mLnd3ldLhhH3tAOH437ost6sSk8QJYKIY0o70iNqnSdH8iRPjdQs + FgrsDdM8myyHbKYxB+gMpkfUkYK3ZvuneT1lG8pyvlK0hXKl+IwJLbc43U33RNgL7VOolTFH8bZ5 + 6o567VY7J5sZmrtg5G0MkZAV4afaiux5xn7jXQEhmL1VPc71b5fLV1HVrGHKm/dOr4WeXB3DB/xQ + dH4eYyIch75wbPCWOQU8QQ9d82Qz/wtblTlVv2hgwgOTO14BP1j+JTTBcnHopyW2WMjIPy6u1Zzy + b9FnNz7zXgWXk/Yx7OmUDQww/bVtOMUzG6CMc6DdqbcG5cwqqZ3lVyJ6KG/yghYkr93qdXoS5a/w + PL8R6ij9N0tHwcPtZ66rXDKNbsfP8eMmzq3UoJpNQUTaNvGBMdNIHzFPmXIIGHxsNBrK24vr67PX + V+9eP98g+ChgsNDOeiupyZ415u32RO88nZ8xQYXWK2BnezLp99iW7MQb9eutTr3dLWdiqk4562Rf + znFN/bZ5r1l4vaDN/DGYYYmFr5ylfe9gxiN6bR4zakroJgUzvDOkiI0+o+fo2dHC5G9RB7BSwfQG + X1myCkw+8Mdw15zZMucEEQp0QyvHukvGLOrGcu6LuNcdGMYOszEhSDn7wBHv9LaZjaZ9rvkMXN+3 + pu8z42qNTTb11cLM2OMMH/1wIopgkuymZ6gXMbB1YvELzK/xexM97fxq9gb15YJ4nDKS5xr4ySAl + USp+lKTP2Y4e+YKOHM1R+S6IInnN/A5mupjkBigBnluAqQYcG4UQbGwlM2BPaLx54egc4H9QPvVg + 0fAeDyna1oprjs1chZ5fm9P7NasoeCqsHxrAAlY+kXUAEBMo8XSPk+NegT4edHu9LNcu7Bn2lLDr + GtZcmnIO3r3P9xVeX136NeWt9mAuwoXyu+a5RWuEe7yJFfySe2CGfIMMz0CfMHR6cS0G89vH4Lzv + MlQewM5QhyZTfKkO3U6ClwvQrTnI3RikH2gT0zKDVV6jb8mszd4imCPfYsLZ3zRlLzFtppDVeMKg + vb/fOui22rQ3seuEpNQc5OtpCtw29mw3Aly/vc6P3F/4bxlo8DNSLgXjTVfgQdozg67Kil11Knzn + YBVRxC88ILb9uv0MC96xEApREMrnGVSz42rcBILq7Hz7fMsBT/nfaXd0ogUwn4CDoKnwPmKag7ld + EUxN0gPSZpfn5/IsPPvbhXLzy4Vy9e7m4sO7i5tC32gaktfjTNEdAtNLc8ZxmR2fd1JMMMyB4pn+ + 58bxxDv5nSl00SCt3vHMFU7TKelfJAbP3vLAngNW2Fwa6zYTL6dSD1/2Ll+1co59iopqoTTEC5H4 + Oo+iNWBaQPil8md4WGjd1Owc9rvtg5661aR4zYJYuLeRF9r8A/fZqE9mYvJ2u+1+b9AfZCiIQ0yd + iS1YcZUtpbDZElafph9tW8w1fw5PO7OPrzWkqD/mV48ISt1rnqkJ0cGGddOvR009phlOojw/FWyu + sweXeSbl6ed207+q8PT63a/vf+2qwyyH+C3W6ltMYf2bCQxXzm6bL5WbOfj7eDMLMR98ejQKsIqe + CDWvDluN/RoChjaI9iu8UGKo0nSGxUi3fdNqDelPA5ZX/61KI+Q7+qJjyw2irgJvTWcHqH7ybfRg + bZtPjwW0Mv3XnKFn+FqPNLlKIh6u+xLMdXlELHXuMVrUV1JgHo/S4V9MP+FXwI5EeA9U8JUNhtTW + WXXvKFWZd2DaZlAdNxYMtHU1F0KtFURzNhfw6BCICI/5xILN4zvxT7xy8Ar6ChLRBzmPSr6qCMYU + v+zQsh7puQiTAL+zMvu4t5ehhyloYDMQwiscabZGnn7jpWkA1S41PBqxAkJiwIUTRpQ1fqcaeWpl + gadBcRrz6FS1wvVcpZYPW+dQjL58Y3ycBje2fRdzr9qL+8XKUY+KawTazB/98SmDSHUa2uSwVfcK + xAIb4/WaQLG3WjBveGBWnEVW6Igr0ypVPFZajXYRqNSos59mExQJWDj4gyb03fVv7y6U96HlQ/+A + d2m7BPtlTTGgW8L4AdBdOyx5eHcjo8Gv3Luw6B6BqioovXd01yjmATzQ/JWtj1A15mkRfe4alCqB + /oT6c1X4FepoBD2iOUD0GmijHd2xTlVMKNPRpuK/6t7PasP2224DLGzTxSwFbaT+LFhd3qXRwDvt + G5iTBwvauWkZ1bu9I+k6/uwH+LZsaIZxgaHyN3hlGMwrJGS+tKrSBYg15aHG1d9awAwqCOgB+EZz + AiUAJwVVfJ2UgLoZHDbm9YHDD+uqP1aXJogqSoXI8MnpkeiTD0lnFJAs7pnp+pSkwrK8mei0Ke4o + bZ08k9cC2uKfNh57HcXf/vUvINhjXhvw1CuYVlA3+V5UO37a0BeGXJt+QwtUJ3ID0TWfHe81T1v4 + hQk7FdOoDJVKt9UfFCQiVPAuCnTRLm2otXEmB6DRy+d4hJIP7h+tXoDOsOZ7/f7mDJGsVrCCbzmB + XylQa/h5VHTa+agyFN/mf5oz2/HYfzYLxK/AiajgNrQTBjCSDutmLb38c7Mq1moK0jNOWoPRCKXl + v1zdaOQ9J+rrj9an/IA0uX2Z3su3IkUITfOqsKAucR8qF2tHDbUiggI119AW2j/xAlPDX4GSWfBc + QO2h00SujJFvd35BH36DX+zyDoPJsOaACfQS12isiiTKDGDtDKai9fM2umxm4pbOYfcBp64+H7Xl + SfsD4H97Rh3Xiw0vtK9R6Aunpy6ybWANYPhjccpHrIzjhbF8YQGtiOkObDBQ02Xs+vGi0F4An8D9 + l9xG/sQPJx4zDDPw0+3GwsscR6sPvhYZ0zyVVwV0289Y3PYDODAuy/DEMO/rMxevAqhnK3GBuRYn + ZaFuI779J3r4li6N5StNsKS4O4vvYYWu/8B3NXcOWp9q9K3Xan3C5R8ghq+Swy27/X6vDRr8tvnL + +GoMdR46FJhwPTbBGl9V37n3bPwCxt+I93+I5uQi42FcRIvXg5akSPERqF7qpH3Q7vRa6iOsWlTN + sbaAhbVkSHSjpiBVd9Dtd3r7tKoNlo73GcoG+91Ooy3GfUV99kWH9L7liwd9rtkztkXX6foyEnws + 1EnArl6pw3a/0x+0qBcdE3KdBHy0mMjDFzVlwKBTONL9Vq/d3ed4GyZ/5ffi1du/b4F2qnoe6/19 + 2p9DwL5jOxNzK4ZSxUI+cOnZ1yaDVk/rHR5q7f0pa7UmnUPs5FFa1QaOOxZR3hKBT9XISftPfJNG + aWTuAc3J/oRUqiz7/c5hbVAu8G/omlA6UTce9FsPg9b47ObyB8j+weD7yn53g+x3Ogc/RPY7suz3 + 9g8Hg+8t+90fJfud7y77OmOHk+4BMw72tfZkv6sfco0jy35yyW2J6MsVYKl6Edfhr2HYUZihqhDm + 8ZsrSZ75DkaMnQvzzv+8KsXt82oMVQrnZNklcXmDNOVxjZQ9QitU+6Pdi75FNmqdZYLaD73WD7FM + 7e87Ow82WaaD/R8yO7tZy9T53rOz86NmZ/u7z87eAOakfng46Q2M1mDQA/1+wGcnCBmHA/76XegH + /BIY3EBG/rcag+wAqSjDq3YtEr52gnY7IXb7kXALwFARbJhSJLCeLsKk6JLG61NxJ5vwTaHgtnnn + 3zahEa4nABTGVh7SAMifrRsNeoTbLgDzttlutLAtgDi19ZGYQHWe7IwU5lt+46kFnRLV8CWrtKMh + iO1gGD0WEkxyGbsUcogd4Um4EEU8eqaKMEICNI4rcJCx15wrkL1onA+wpEqgpMIIpj3OQF1QUD7Z + yDUfgjl33TNlUDL2tWkcGUhKQ5uXi+oOYpMBwcuyIJLSDIjUqiDJIRQF9LZnpK5ABN8SFP9wtUVC + dloBtFsJaQw21UIruPw3cbLEqe0mbrXvIPpFMRgQYVyIkg7iL8fG1SC97GgcmeA43Mp/pOKrvCi6 + JnGoUgwT3/WEq0dxFzag6nE9iE/5O6rQ/0W7AxiKq8T5UgUvScYtHR7DEvciK+3+sLs/PIiTssd4 + PQ6G6PoX1wP0gPE0NIIA7UERbNM/S1glQn7x8IgueSQFvVJD4WUFI+YPUmOhYyqmPRv7Ovr1w1Y+ + uohv99NkMFPt3kEVnCALawKdjWeeKcWA/PE9hgQlWwi4j+kGOiYGF+MaUfOrSkwkLR+VwcJeVE9G + HUXSs4Fzjh9/wfNwv98HMvJXNg97/Rb3DtRhZ3DQovAj0kBE+TUbupNH5NJUGVP6jRSwdVw6gyF+ + l/P9YNjCMwHo8BjnsWnFmSq0yx9Z3ZCb6fIkkycSHsmxZUifeIQNhMeP5szG4OH7Dxcvr16Nb67e + Xvz28UYZKe1Wq5XfFnYnd7gbRP8UbQbjg8aXkIk69DWzBfzkra+yM6tic2rDfvjTNsCkWJEcwZP3 + WteF9rhOrGSDp5EqCj0rLhsqJJupejCPYKqlKxfV8/GaycynsJ54CdSmeny7bzM8DAFs06/p/+IE + lDSxvh5O4zy8Cqm4zJb/RPPZxw9vMlUNhvdAfPxwde4sXHCa7aBa+XPnMuJD5hirm0IogtHK4v7e + c3KVCiL5/OVJ/OC4hHwGb8245+/jToErItkHCptu7hYm+hi9100VgbhnOri3Gyuatshg2ALinMng + CsaSicLnKf5vO/1vO/1vO11mp9MTjm7rzM2fkgmXbsln9A1dbxy3rNCSdKjcZK9Q5yyLcrbjc8Vp + bDDx37jU7pnxgeFLuqxVoZYA3XTN7c6VH52UGmYOdj/KcfZ1BhUJ4OfsKS8ebkpRenxyf9H6CHpE + KouI4ONeNZ3QI8oLgmxU/IRA2xb+xhZoa7ZmrQJTz1Mq+qCGovS0NYfwLWf23nxg1hCT0OTXXlvh + YqJ5jZk5reQaPhYEgrdJfipGMx7IGTcKVyA5lY9n9V6v3x60DuudYgSeggE326UYINOgzxjPwkpf + 0M7vgolLJ6LYX7Wpk0tIy9cmFX+R5GIWNin6FHZ6HmgvKdxTlURb/mTj4TmZL3HhC6U/n3tCubav + fnsLSwMRXo5LYIUgF6VRi2o1PIZ7EFX6nclKEDea0FGCYuEuz/0QJniYz8dr4CUejZShLgaOH34/ + Sh4Glpe3MkWKpiRy5dlNCzpMPBTJjeOGKFiDk0bLCfABCyf+Y8Y/LkgZebm6MqqV1AsQK3uFiRL4 + a3c9aE6V6C6mTBrm8+I7meRPJtsSE1vfOUH8NiOfBL6mJAkB4lwBJUO7YSB8pO5gIIVp0Hd2+Zlh + udIgVQnPwWdrtNNVbrzQz4PppitdGY4FLk62Vj9d6wOznaVd2KFc7TVeMMLvIklh3ul0u/1Oq9s7 + PAAP6+Cw1X/8lM2CWcvYZ5u5WnrvU+FFStm1+ndaof8HdOt8Nlm14mEmlxbn2oorjz5Q6St+9211 + TzlV2rgOlDUcKiwxveKM6gv+uyyzulDpvhEpnLA+XcD6ripgZrsS5ElSjwuBXVFI/nWqroyBBAnz + 8FL1CmEUoRNxisf/C1Onc1WRPBzwO+0ek+h+Ab+/KtbxGREraTTmepY2Da7prUkAhr8BPAJUi9uO + G+SwNuQ1yHbd8DgpntvPmDfkanYbZ493U6McNQl+Qo1mU4nWVD4/aoPKB8/ggC5V8KTFSq6L520C + 8D/wJdwKxWgVMGZzsU62tftEhKtxSmqDwJTn/cWp/5cCkzLxiZ5X8xqUv/6aLy0yJiLDexiFyJGi + 7RQx6gDzsgMHb7FawWIZFxLyaPAjRK0BI6jAsxuHmCsc7ZoybkzAA6iuRbyWHlcuWTfpAmZmhd/t + G3ewNm8yN+bC8Sff0FzlTT2/JmwvDT49Ihzkla2Hfn4Gxl0m3cg0KxsOyU52TOOneYAwSmDspeNR + JAVPa+poPZXzmzP/KSugbS3+f0jS/DUrXvgeL3qJF6KCOy05aacb2zCNFa9ZxWqV9NyXlD2+5+WN + MysQeQIyTGAVXJ1Gh1nAzXoIwPMU/BZ8SxsB/CUevIVGeMl/NQa8V7bUqODuSKVkvzOuZIAXgrXa + Jc/j3bvK2sVdBVaAqC2hFm0OFVfCjYz1cIrbCY15gfffVnJbqnE1R9+I5NsoCbSS3TOIPo97a2cr + /lsYAtjNOd3ZMS2egnwvOHs2psCBvTIs9taBL45XTSmHeAAlnvc3OuLS3EGhplyJGzx3ybwc1uOZ + hnrJxu2SCloDnK2VwtVBfpcqWic+j1WBUfNrJqhPOnDj16Z3/sgozl73MW295o6a/4+/G60B5jeo + Jgdm9k7p9uXKkF/CXDkyp9XnRnZZA33tfaVO0otJcCXuwH81RqaBX9CjdX+uDJtNcBcDOqUt3STV + 5KzDKFTlCFAuzTnnI9o7enyMTTtQjRMB6Sdg1pd3eMYgHyQrMkPbMJaOdgGitE0MCjP5LsXl4sKG + G4Ln9lXR20MFEw8VvQNf+v1+a3DQUuMJVuyN0B3YWxwdqCnMetoJBcUvOS/gi3MCMU3zh6YUmKfR + sSpw9dXoXm5/ooLXH71db6LuKT8raoOooIOL5jG+U8QPYoKb5tjpYwbMKuW1jyNMNg/hm3SRr+3I + rE1eTh0hUoKCe6q3R52/6J2R4MZf9PtRpwH/3I3a9AaJ42YaNIF/Xq8r/xVqdqBrfqAAcbe4g/nk + GQnNF34zKspM9FWITJ79ZJaBh+Xcj0RdkAUrfwPvmI6ZNhL/GMxCwcIvOFy6oJEIRz8T1lHHeWGi + 4vXnV0i8dTfYKLrxUOPDNdisVFqw6xpVwTufSVwigovpSDC+aLoeDFW3Pj10vPC3L68urbfsSn32 + mBKvnHzha0P8YEWvs+Qr3qHt2OwIFt/Se9Fd3PjNUo4Km5kOcRtYVSYUYxupoBN4oGakghBS/Ia+ + 0evUY7lTmyfxffwJeiSbF7AkSuQzEPL57Gk6LvoktmRam9RY7b5m14Kav/cV9P+0MZ182fNYEHr2 + kT2inyPJDbUbeKCMZ9CepqDKT/DQpLWq2jXNm5EE+HtDG7McQqE6k/JHsjrTxhj75f+M7KMMZGwD + pXaDXthljJ634Lu4NWVUgeldORLg8VRuMJpkZhUsSwNxzPR5Jl0jIMt1f+RDo0IxZSSf5RYLKRcf + kSzcKKzF9quCr16EpYUeNKIrHelQKrPHH6+b04kQZ7JtaecEyFKtoMeDRrC/3+n2+4eDzkH34KDb + yu4dUF26BQIr4wUSfxMeR24zMa9TuC7ld7yfemxWuJWY7gGzCjDq+YHNMDeV4GRxKvPIqCQWdppr + hTOlYG6qiUHwxYtfY6LSG4a9U/BOMrT6C7sfRRT5S9QvWAacemmVsJtzGH8pXbuB7198InHh4ynS + yq1IRBmLL9XxXlyE/+GfMf6gX3GpqPMv+O+2Mlb+Bwpvb5WmMv4fKhPl439J9ZL/qmP6l/8d1RjT + b/7/7e14XFP4P1h+m86WEeiNm0rhk38Bxs1bO7P+xA+O+WcY9GjLz62Nl+NiWjFtpzA8Xuc7Fnuu + /Io34VGUFnNdarcwHfFCl1Pld9CauOmCKe90dxOIDt4OE127dmtTACl08bY2vMbkVBHGMv2i91t7 + eyQLRioQhYk2q8Kos9ODjsWCrvkqR2Ore2m5yixm6C/+93ETz6qj4ZgHC+vk2f8HDvYDsvKxAAA= + headers: + Accept-Ranges: [bytes] + Age: ['0'] + Cache-Control: ['max-age=60, stale-while-revalidate=600, stale-if-error=86400, + public'] + Connection: [keep-alive] + Content-Encoding: [gzip] + Content-Length: ['11342'] + Content-Type: [text/html;charset=UTF-8] + Date: ['Sun, 23 Jul 2017 06:41:53 GMT'] + Fastly-Debug-Digest: [2feb96fedec29f726b6925f2de2a141eca3129207c589b532476fef44a547eb1] + Server: [cat factory 1.0] + Vary: [Accept-Encoding] + X-Cache: ['MISS, MISS'] + X-Cache-Hits: ['0, 0'] + X-Frame-Options: [DENY] + X-Served-By: ['cache-iad2149-IAD, cache-jfk8142-JFK'] + X-Timer: ['S1500792113.091414,VS0,VE29'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/cassettes/test_parser[imgur_1].yaml b/tests/cassettes/test_parser[imgur_1].yaml index d456c37..18d708e 100644 --- a/tests/cassettes/test_parser[imgur_1].yaml +++ b/tests/cassettes/test_parser[imgur_1].yaml @@ -4,246 +4,51 @@ interactions: headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] Connection: [keep-alive] - User-Agent: [python-requests/2.13.0] + User-Agent: [python-requests/2.17.3] method: GET - uri: http://imgur.com/yW0kbMi + uri: https://api.imgur.com/3/gallery/yW0kbMi response: body: string: !!binary | - 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 headers: Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] Age: ['0'] Cache-Control: ['max-age=60, stale-while-revalidate=600, stale-if-error=86400, public'] Connection: [keep-alive] Content-Encoding: [gzip] - Content-Length: ['12306'] - Content-Type: [text/html;charset=UTF-8] - Date: ['Thu, 08 Jun 2017 15:18:35 GMT'] - Fastly-Debug-Digest: [7cae0ea75f411241b1ac71b061ab25fd2922d154535ce77bff25d47b872c53a5] + Content-Length: ['387'] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:30:57 GMT'] + ETag: [W/"7c3f029c0dcf77ee4c38912842a304106a01e240"] + Fastly-Debug-Digest: [a2793844ca4503867a65d6f254f258f0ee7f945487a64ad7c417e4b80e273f38] Server: [cat factory 1.0] Vary: [Accept-Encoding] X-Cache: ['MISS, MISS'] X-Cache-Hits: ['0, 0'] X-Frame-Options: [DENY] - X-Served-By: ['cache-iad2131-IAD, cache-sjc3139-SJC'] - X-Timer: ['S1496935116.641036,VS0,VE108'] + X-RateLimit-ClientLimit: ['12500'] + X-RateLimit-ClientRemaining: ['12497'] + X-RateLimit-UserLimit: ['500'] + X-RateLimit-UserRemaining: ['496'] + X-RateLimit-UserReset: ['1500793797'] + X-Served-By: ['cache-iad2132-IAD, cache-ord1728-ORD'] + X-Timer: ['S1500791458.930316,VS0,VE43'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] status: {code: 200, message: OK} version: 1 diff --git a/tests/cassettes/test_parser[imgur_2].yaml b/tests/cassettes/test_parser[imgur_2].yaml index 4257371..8abb14c 100644 --- a/tests/cassettes/test_parser[imgur_2].yaml +++ b/tests/cassettes/test_parser[imgur_2].yaml @@ -4,258 +4,54 @@ interactions: headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] Connection: [keep-alive] - User-Agent: [python-requests/2.13.0] + User-Agent: [python-requests/2.17.3] method: GET - uri: http://imgur.com/yjP1v4B + uri: https://api.imgur.com/3/gallery/yjP1v4B response: body: string: !!binary | - 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 - xgAA + H4sIAAAAAAAAA41TTY+bMBD9K3TOKAEHQuBSdXe16rG9VWoq5IABd42NsAmiUf57x+ZD2b20Nzzz + Zt6bN8MNSmooZDfgJWQw/f4WXqMn8MFwIxhGvrLJ956b4aI/eS/Km9TgjVQazyivE3T6jNCS6aLn + neFKQiYHIXzblBneYoMwOqZBQNI4wp5TZ1vyltbsvK95hcVU4tMwJDf9wHwYeWkayEh48qFhvG4M + ZIf06IPmf2y7lMQkCQIfrpyNGrIoCDBNfLhQWS7FSRKckiBJwzSJHFQZtiqr6FX13L4rKjQSSl2N + 20OzYh4DqkHKyeorCjVIkw+9WFusIesYOcXIFKU+cJ3TcmvEZd4qbfIr76lYZzO0RsU/byCptWbj + KLm2XuYfwpUSQo2sxxqSWD+MMlTkKL7F0CE+HtJwRXFZb9wXWrzVPUos84Zq9AN+FC0Jn77P4zCJ + lkL88uU5fYV3aDvCto51EJ13vWrVY+zdwgF7CFWrhWu2yAUQZrikFvZo30M10kmcyX7iRLf7/Rcq + LPP5TgL37QotBzpaUyFYP212qo4XmHxd/HLveSs+tF2EqcaYLjvvz3u+42099LtCtef9cuU7i/EB + 7/D6T6gDua75cohHEpL0gKNy+fY/5c4mVGgXNetHRIvLyN01oegIZQ8dGhESt9lSjdaWMIp96BSX + xqVIZH+GQvXu5yJRMp+euAztsqA75gfcs9Yrk0aPB3tGQXD/C/xJvevyAwAA headers: Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] Age: ['0'] Cache-Control: ['max-age=60, stale-while-revalidate=600, stale-if-error=86400, public'] Connection: [keep-alive] Content-Encoding: [gzip] - Content-Length: ['12942'] - Content-Type: [text/html;charset=UTF-8] - Date: ['Thu, 08 Jun 2017 15:18:36 GMT'] - Fastly-Debug-Digest: [8178ee79fcbed95c6f46607d5b2c4acbdbacd65df0b8441f48e41578624b8782] + Content-Length: ['558'] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:31:06 GMT'] + ETag: [W/"d15c07f3545be043db49111ce9a2c1f2ffcd3f6c"] + Fastly-Debug-Digest: [ae54aa40bf3682f3981ed7edff859cf9919f30c245b7867aad44cdd61444b1b5] Server: [cat factory 1.0] Vary: [Accept-Encoding] X-Cache: ['MISS, MISS'] X-Cache-Hits: ['0, 0'] X-Frame-Options: [DENY] - X-Served-By: ['cache-iad2151-IAD, cache-sjc3141-SJC'] - X-Timer: ['S1496935116.945343,VS0,VE121'] + X-RateLimit-ClientLimit: ['12500'] + X-RateLimit-ClientRemaining: ['12496'] + X-RateLimit-UserLimit: ['500'] + X-RateLimit-UserRemaining: ['495'] + X-RateLimit-UserReset: ['1500793797'] + X-Served-By: ['cache-iad2141-IAD, cache-ord1732-ORD'] + X-Timer: ['S1500791467.660561,VS0,VE73'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] status: {code: 200, message: OK} version: 1 diff --git a/tests/cassettes/test_parser[imgur_album].yaml b/tests/cassettes/test_parser[imgur_album].yaml index 76eb4cb..9ab7879 100644 --- a/tests/cassettes/test_parser[imgur_album].yaml +++ b/tests/cassettes/test_parser[imgur_album].yaml @@ -4,227 +4,52 @@ interactions: headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] + Authorization: ['**********'] Connection: [keep-alive] - User-Agent: [python-requests/2.13.0] + User-Agent: [python-requests/2.17.3] method: GET - uri: http://imgur.com/a/qx9t5 + uri: https://api.imgur.com/3/album/qx9t5 response: body: string: !!binary | - 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 - /i9ppXKBuK8AAA== + H4sIAAAAAAAAA5WSwW7bMAyG34VnI5bdxIl924AdWuwFhrowFFlx2MqyJ1FOsyLvPrpOnHbFCvTI + n+Iv8iNfoJYkoXgBrKGA3885rSACQjIaChuMiaDWXjnsCTs7S5I0YctPkmWWi5tM5JsIVDdoxy7h + B4lfP2/hrFQHrGkPxXK9vih7jc2eoMjWIgKpVBcsVcGZi/9FGpualN7hINWR3fuwNajY3MhjF9gE + tqZrOB5QHzx7ZiJJOYv2iXN7or4o4zLGtgluobq2jGUZXwbdyaFzSDzIThqvI7B+d5gDr9U0NXyz + 2LL2XaNt7rR78lzLSqN99dopg2DBVo00Rrvj7IC+kvU1eq2A4v6M+wrqy8ATweTo2LMy2ZbxY69H + DHJslfT117f434H3+IfL03wlljO9ZXKTpHkEW2nrc2GSJptNvtqIJONn3Qhrauo/8KbkzO79Rj9d + 8j+0bNV2nqoBnTSzSrIZCT5wfV1NAMYbqidnGPfycQ0fjmHx5hzOW1g89g2cHk7celBKe/6FXBiv + gCQFjlIhTn8BV1zAATADAAA= headers: Accept-Ranges: [bytes] + Access-Control-Allow-Headers: ['Authorization, Content-Type, Accept, X-Mashape-Authorization, + IMGURPLATFORM, IMGURUIDJAFO, sessionCount, IMGURMWBETA, IMGURMWBETAOPTIN, + X-expSNKPK3'] + Access-Control-Expose-Headers: ['X-RateLimit-ClientLimit, X-RateLimit-ClientRemaining, + X-RateLimit-UserLimit, X-RateLimit-UserRemaining, X-RateLimit-UserReset'] Age: ['0'] Cache-Control: ['max-age=60, stale-while-revalidate=600, stale-if-error=86400, public'] Connection: [keep-alive] Content-Encoding: [gzip] - Content-Length: ['11182'] - Content-Type: [text/html;charset=UTF-8] - Date: ['Thu, 08 Jun 2017 15:18:36 GMT'] - Fastly-Debug-Digest: [2feb96fedec29f726b6925f2de2a141eca3129207c589b532476fef44a547eb1] + Content-Length: ['416'] + Content-Type: [application/json] + Date: ['Sun, 23 Jul 2017 06:30:45 GMT'] + ETag: [W/"8df953f4de9cb4f419efddada8e9f0af665dbcc8"] + Fastly-Debug-Digest: [b95c41c703e904c145c615cb1569a4d8cd685a4c48c40c1e2322fe3184806bf9] Server: [cat factory 1.0] Vary: [Accept-Encoding] X-Cache: ['MISS, MISS'] X-Cache-Hits: ['0, 0'] X-Frame-Options: [DENY] - X-Served-By: ['cache-iad2132-IAD, cache-sjc3149-SJC'] - X-Timer: ['S1496935116.256863,VS0,VE119'] + X-RateLimit-ClientLimit: ['12500'] + X-RateLimit-ClientRemaining: ['12499'] + X-RateLimit-UserLimit: ['500'] + X-RateLimit-UserRemaining: ['498'] + X-RateLimit-UserReset: ['1500793797'] + X-Served-By: ['cache-iad2142-IAD, cache-ord1747-ORD'] + X-Timer: ['S1500791445.208238,VS0,VE62'] + access-control-allow-methods: ['GET, PUT, POST, DELETE, OPTIONS'] + access-control-allow-origin: ['*'] status: {code: 200, message: OK} version: 1 diff --git a/tests/cassettes/test_parser[instagram_image].yaml b/tests/cassettes/test_parser[instagram_image].yaml index 952e869..5fabaf2 100644 --- a/tests/cassettes/test_parser[instagram_image].yaml +++ b/tests/cassettes/test_parser[instagram_image].yaml @@ -5,148 +5,148 @@ interactions: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - User-Agent: [python-requests/2.13.0] + User-Agent: [python-requests/2.11.0] method: GET uri: https://www.instagram.com/p/BIxQ0vrBN2Y/?taken-by=kimchi_chic response: body: string: !!binary | - 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 + wztcHsFrXeArYv8XX77GaVVsAAA= headers: Cache-Control: ['private, no-cache, no-store, must-revalidate'] Connection: [keep-alive] Content-Encoding: [gzip] Content-Language: [en] - Content-Length: ['6941'] + Content-Length: ['6917'] Content-Type: [text/html] - Date: ['Thu, 08 Jun 2017 15:18:37 GMT'] + Date: ['Thu, 01 Jun 2017 03:00:05 GMT'] Expires: ['Sat, 01 Jan 2000 00:00:00 GMT'] Pragma: [no-cache] - Set-Cookie: [rur=ASH; Path=/, 's_network=""; expires=Thu, 08-Jun-2017 16:18:37 - GMT; Max-Age=3600; Path=/', 'csrftoken=sM7lNf0qJ4iVbnn0auNAKZfLDTL4W6IB; - expires=Thu, 07-Jun-2018 15:18:37 GMT; Max-Age=31449600; Path=/; Secure', - 'mid=WTlqzQAEAAESrM_9FaBLFsPKG4UY; expires=Wed, 03-Jun-2037 15:18:37 GMT; + Set-Cookie: [rur=PRN; Path=/, 's_network=""; expires=Thu, 01-Jun-2017 04:00:05 + GMT; Max-Age=3600; Path=/', 'csrftoken=pPVjn4n5smFrkGq5yEmdhAUPsFk6sBfi; + expires=Thu, 31-May-2018 03:00:05 GMT; Max-Age=31449600; Path=/; Secure', + 'mid=WS-DNQAEAAGY4W0-gaOJcn_obrnE; expires=Wed, 27-May-2037 03:00:05 GMT; Max-Age=630720000; Path=/'] Strict-Transport-Security: [max-age=86400] Vary: ['Cookie, Accept-Language, Accept-Encoding'] diff --git a/tests/test_mime_parsers.py b/tests/test_mime_parsers.py index a1ad3d4..194c473 100644 --- a/tests/test_mime_parsers.py +++ b/tests/test_mime_parsers.py @@ -6,7 +6,7 @@ from collections import OrderedDict import pytest -from rtv.mime_parsers import parsers +from rtv.mime_parsers import parsers, ImgurApiMIMEParser RegexpType = type(re.compile('')) @@ -46,12 +46,12 @@ URLS = OrderedDict([ 'https://i.imgur.com/yW0kbMi.jpg', 'image/jpeg')), ('imgur_2', ( - 'http://imgur.com/yjP1v4B', - 'https://i.imgur.com/yjP1v4Bh.jpg', - 'image/jpeg')), + 'http://imgur.com/gallery/yjP1v4B', + 'https://i.imgur.com/yjP1v4B.mp4', + 'video/mp4')), ('imgur_album', ( 'http://imgur.com/a/qx9t5', - 'http://i.imgur.com/uEt0YLI.jpg', + 'https://i.imgur.com/uEt0YLI.jpg', 'image/x-imgur-album')), ('instagram_image', ( 'https://www.instagram.com/p/BIxQ0vrBN2Y/?taken-by=kimchi_chic', @@ -78,9 +78,11 @@ URLS = OrderedDict([ args, ids = URLS.values(), list(URLS) @pytest.mark.parametrize('url,modified_url,mime_type', args, ids=ids) -def test_parser(url, modified_url, mime_type, reddit): +def test_parser(url, modified_url, mime_type, reddit, config): # Include the reddit fixture so the cassettes get generated + ImgurApiMIMEParser.CLIENT_ID = config['imgur_client_id'] + for parser in parsers: if parser.pattern.match(url): parsed_url, parsed_type = parser.get_mimetype(url) @@ -93,3 +95,21 @@ def test_parser(url, modified_url, mime_type, reddit): else: # The base parser should catch all urls before this point assert False + + +def test_imgur_fallback(reddit): + """ + If something happens to the imgur API key, the code should fallback + to manually scraping the page. + """ + + ImgurApiMIMEParser.CLIENT_ID = 'invalid_api_key' + + for key in ['imgur_1', 'imgur_2', 'imgur_album']: + url, modified_url, mime_type = URLS[key] + + assert ImgurApiMIMEParser.pattern.match(url) + parsed_url, parsed_type = ImgurApiMIMEParser.get_mimetype(url) + # Not sure why, but http://imgur.com/gallery/yjP1v4B (a .gif) + # appears to incorrectly return as a JPG type from the scraper + assert parsed_type is not None