Compare commits
684 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e0788be5af | |||
| 52709a3e25 | |||
| 25cf0ac996 | |||
| 4c3d7d5b9d | |||
| b4cbfc0de2 | |||
| 600393c12a | |||
| faeeeca39a | |||
| 537d33b66a | |||
| 3933db4936 | |||
| 86c6d2c253 | |||
| 75ffe3767f | |||
| 015b7547db | |||
| 2a6d861968 | |||
| 0f188e30b0 | |||
| 5faf8277f1 | |||
| b86b4f1405 | |||
| 98f903174a | |||
| d8df8a4624 | |||
| 0df19e300f | |||
| b26bf1c470 | |||
| 53cd3f6118 | |||
| c23f955b6c | |||
| 5c5b2656ec | |||
| c6278909ff | |||
| 64d599d6f7 | |||
| 90d638e9c6 | |||
| 1dabbf78b2 | |||
| 58b0b0c756 | |||
| 1426d9d62d | |||
| 85db6c7884 | |||
| 43d02c349f | |||
| c7af4573ca | |||
| 73a217eb1b | |||
| b1854222a0 | |||
| 7cb72b2bb2 | |||
| 00245dd44d | |||
| c1972ab26f | |||
| b86254b0b8 | |||
| 00157ee655 | |||
| 6aaece1c44 | |||
| 6445064836 | |||
| 9d0c9d93a0 | |||
| 01a06166ff | |||
| f41fc2bceb | |||
| 5ffa344f1c | |||
| 31c2b21350 | |||
| b2c6562c64 | |||
| 02a36d9cad | |||
| 5dcb1916b2 | |||
| c5623ec868 | |||
| 1c17c1987f | |||
| b6318bfae0 | |||
| 0e8489951d | |||
| 21d3a1c1bb | |||
| 9055021282 | |||
| 10fcfd21b1 | |||
| c142233ff9 | |||
| e660e47265 | |||
| 40c4c0aeec | |||
| 97c9a7b025 | |||
| 9145f2530b | |||
| a1b073e5d6 | |||
| 7425153760 | |||
| c0836a94a9 | |||
| 9dc24951a2 | |||
| f3eaad8d1c | |||
| effde5014e | |||
| 74c4c06a5c | |||
| f10b7683c9 | |||
| 5e26185c9f | |||
| 2d350f5340 | |||
| f0519bbefb | |||
| 7acfb3f027 | |||
| 24621e15e3 | |||
| 3474b2363f | |||
| 560dea3e3e | |||
| f6e5cf91ab | |||
| 57e8770fda | |||
| 7e8f7e41b5 | |||
| 84d890d7b0 | |||
| e57c90b97e | |||
| 236c43b807 | |||
| bb32c286d9 | |||
| f1d4975079 | |||
| 464b783477 | |||
| c4756030c7 | |||
| bf538fee32 | |||
| cc32c29930 | |||
| 27b8703949 | |||
| 0d9bbff534 | |||
| cad60e73a6 | |||
| 1d14d21684 | |||
| 0733ef7d32 | |||
| 143f872166 | |||
| 95abab3c18 | |||
| 2e5fb46ebc | |||
| 0d11092178 | |||
| 80589f325a | |||
| 0b6b3d0905 | |||
| bc97f772b8 | |||
| efe944a10c | |||
| 9d9aed2d4b | |||
| 9cd8b7d593 | |||
| abfd2361d4 | |||
| b10e616ec2 | |||
| 7dc2a90edc | |||
| cb53199748 | |||
| 7b2402c436 | |||
| 0715437888 | |||
| bea95113e7 | |||
| e73e969f58 | |||
| fd30cf7388 | |||
| fa9792b280 | |||
| e93530c7c7 | |||
| 35d4c37d61 | |||
| 4d61d3fc42 | |||
| a24388137e | |||
| 60c7666610 | |||
| e11f1c4b28 | |||
| e1b32f237c | |||
| fe76634d02 | |||
| b499540bed | |||
| 7b4a9c2060 | |||
| a84cc80a88 | |||
| 241cea9729 | |||
| 4b83ddc63e | |||
| 0b431fbb8d | |||
| 3736d921a1 | |||
| 380fb28d2e | |||
| 64c0ee4ccf | |||
| 5977bf69fb | |||
| 179ae6a24e | |||
| 16942ec4c7 | |||
| 6f5378ea40 | |||
| 02ee2039f4 | |||
| e7f89c1a19 | |||
| be4f9d92eb | |||
| ca63b97e79 | |||
| c1ed4a0232 | |||
| b826a0bf08 | |||
| fd0d87d719 | |||
| 094373f3c1 | |||
| 5dac623c9f | |||
| 57d1e772ec | |||
| 983efbfd9b | |||
| 1f11e293c1 | |||
| bfd278ae1c | |||
| dbe1b9d2af | |||
| d71bc4bf09 | |||
| faf2e1dfa4 | |||
| 93360aa1bb | |||
| 8df7780ef9 | |||
| c1fda7f44c | |||
| ce42201eee | |||
| f65131e5b0 | |||
| 8d9efa5dc0 | |||
| 1a54bfb732 | |||
| a15c1f05b2 | |||
| ccfd341fe9 | |||
| aab8e0aa4d | |||
| 9b669c8a3d | |||
| 50960fed24 | |||
| ff61bc8d2d | |||
| e5d9c229ed | |||
| b0e38c7e2c | |||
| c12dade5ea | |||
| cb35dabf31 | |||
| a66cf4b501 | |||
| c355d6a24a | |||
| 60c1e93037 | |||
| 708126aca3 | |||
| bf763a3ad7 | |||
| bb0c3b91a2 | |||
| a7c0cd0d19 | |||
| f315ef9bd0 | |||
| b262a5491c | |||
| d7b30336b6 | |||
| c834bac460 | |||
| 36da0a1204 | |||
| 6ece9271eb | |||
| a465058bb3 | |||
| bad7dbb55c | |||
| 501aaf076e | |||
| 49d27cc7e4 | |||
| e3903f77e9 | |||
| b6ee9b5d7e | |||
| e3301cefd7 | |||
| 74ac38329e | |||
| 50c39382e6 | |||
| 9a65708855 | |||
| 4ebcb2cc95 | |||
| 0c3c41fb4a | |||
| f44942f78e | |||
| d7f2211800 | |||
| 60610e2032 | |||
| f11402c452 | |||
| 277b046b41 | |||
| 7878fb2f92 | |||
| f90c4634c2 | |||
| b52fbc8af5 | |||
| cde1175a7b | |||
| 30786743e3 | |||
| c675bad95c | |||
| 288b92d2ce | |||
| f6e656117c | |||
| 896baa6a04 | |||
| b8f820a9af | |||
| eb8b046dbd | |||
| ff9e0f3190 | |||
| c823eda245 | |||
| 6340de0ddb | |||
| e4f10b9e77 | |||
| 5ca2623c13 | |||
| e560823271 | |||
| 3f83b13a29 | |||
| 507bf09466 | |||
| 688a07dbe9 | |||
| e7c4bc9fc3 | |||
| 04c74afad6 | |||
| e8a4521b7e | |||
| 768b9d203c | |||
| ba5e03342f | |||
| cb3ff0334d | |||
| b96bf9b9a5 | |||
| 4bf673dfc6 | |||
| 223fe8025c | |||
| cf47cf1512 | |||
| 1bac0c3e8c | |||
| 4634c353d8 | |||
| 9ac2dde4e1 | |||
| 07a6db43e6 | |||
| c40f1f0cc2 | |||
| c4ddc6d793 | |||
| 8f58974a1a | |||
| b17fbd6fc0 | |||
| 57d5d57c53 | |||
| 5436512b1f | |||
| 40e10ea72c | |||
| ea6aba4e92 | |||
| e4817dd0d3 | |||
| 751a2d822a | |||
| 38cc8422b6 | |||
| 35f2e47195 | |||
| ab3ad0fe70 | |||
| ccf26730a2 | |||
| c23868dfb1 | |||
| b24af17326 | |||
| 45aff11bff | |||
| 1ee700fa9d | |||
| 4f74dc9031 | |||
| b53fd0bd61 | |||
| 80e3514d56 | |||
| 3f1cac3ccc | |||
| 261e4e8f67 | |||
| bec7ec1901 | |||
| 69015293a4 | |||
| ca55e417ee | |||
| ed37415ee2 | |||
| 68dc99f7ab | |||
| 4d9cac8941 | |||
| fbd6fe00d6 | |||
| e491680dff | |||
| ffc8474918 | |||
| dd7f26e51e | |||
| 498460031e | |||
| d977e3569f | |||
| f122e7e4ed | |||
| 3af3db3df6 | |||
| f4246de8a7 | |||
| 43b647ed28 | |||
| 04958f63de | |||
| b15b2c0e7b | |||
| 61909b68cc | |||
| 71c91bed29 | |||
| a8aa57dcd6 | |||
| a7de8c81b4 | |||
| c2688fe81c | |||
| 295474506b | |||
| c4a989dd3d | |||
| 7f6e192149 | |||
| 28b40e9174 | |||
| f2d2da94a1 | |||
| 14d19ff090 | |||
| a547464d1e | |||
| 23b9aba560 | |||
| 347038c528 | |||
| 2fc26d910a | |||
| 4828730ea3 | |||
| 7c4f539a44 | |||
| 598ef91a30 | |||
| 4862f12619 | |||
| c96ac214bb | |||
| 8fb9cf6a0b | |||
| 4a177b6008 | |||
| 58b59a3304 | |||
| 83e84a24b1 | |||
| 322e6c1f1c | |||
| d1ca77d7db | |||
| d885c78b9a | |||
| 6c8a8a53e7 | |||
| 21ec9335fc | |||
| 4c40a463da | |||
| 169e97975d | |||
| e26c65d4f1 | |||
| d1dd86c825 | |||
| e8388a757b | |||
| 51c7d46390 | |||
| 84688acf32 | |||
| f16ecd220a | |||
| a0f89e46a8 | |||
| 6fce503814 | |||
| e873a2fbd2 | |||
| 53e15969c1 | |||
| c11d83a204 | |||
| 35d664d414 | |||
| 11a33e5425 | |||
| 97bd82967e | |||
| ca89339042 | |||
| 07054c3f68 | |||
| 72405f5c0e | |||
| d5232b8a68 | |||
| d44d032e93 | |||
| d7122a9c98 | |||
| eb0b9f29f2 | |||
| a8b7763a13 | |||
| 1e7fe9d216 | |||
| a0dbfe8c4b | |||
| ef2571d626 | |||
| d3cde7bd05 | |||
| 01191d632b | |||
| 5c934766f5 | |||
| decd0e2510 | |||
| cd46dad14b | |||
| 69c5075ced | |||
| 4da9b7080d | |||
| be112bc091 | |||
| 8389c86ce7 | |||
| fa55d32563 | |||
| 185cc9844c | |||
| 705fb0d342 | |||
| 2ce9ac0862 | |||
| a237cd856d | |||
| b1e685ffc2 | |||
| d19dde9843 | |||
| 74693bf747 | |||
| 530bc7f5ff | |||
| 1b660d1e6d | |||
| 34ce0d640c | |||
| ae2c08bfbd | |||
| f517a683e3 | |||
| b512439d41 | |||
| c62a2a7672 | |||
| bcd5c8f610 | |||
| a75aff65d6 | |||
| 9500f882d5 | |||
| 7fc5f2ef97 | |||
| 5d0808a1f9 | |||
| 511fe7410b | |||
| 7ed6819b03 | |||
| 4709e26bd5 | |||
| 6e1fa561f0 | |||
| d7668d3573 | |||
| 410295486a | |||
| 0d63b47560 | |||
| d3cb956061 | |||
| 2e00accfab | |||
| c54a60097c | |||
| 58a54bce06 | |||
| d00e6905e1 | |||
| c7388c9247 | |||
| 5a2ab412b8 | |||
| 584acb0856 | |||
| 122f41507a | |||
| 6a78564460 | |||
| 096cd5e09c | |||
| cc3fa4b11a | |||
| f050687487 | |||
| 4165ed0b9e | |||
| 3032590b8e | |||
| 113b504057 | |||
| 1a49f0b3ab | |||
| a79143644b | |||
| a2559d2d31 | |||
| 057933d737 | |||
| bb16df5770 | |||
| b9c8ac23cc | |||
| bad6f77a01 | |||
| bb28945eba | |||
| 5a6ed82c5f | |||
| 055b2c7139 | |||
| e049eebeb0 | |||
| 0f3c68b7ef | |||
| 607efff342 | |||
| a88c05f7c3 | |||
| 3aabbfde4c | |||
| b447825a42 | |||
| 2a1fb7bcb7 | |||
| fa7211c8b6 | |||
| bfa961a005 | |||
| 4d9855d91c | |||
| b09c069af8 | |||
| 8fdb241a72 | |||
| de781d0eec | |||
| 2959f52099 | |||
| 1e11c02006 | |||
| 12a58b0ca3 | |||
| 27f521d74e | |||
| bbc3472873 | |||
| 680c699dfa | |||
| b7ba6d51e2 | |||
| 1f2128999f | |||
| f03503b7f8 | |||
| ae1b86173e | |||
| e783c255b7 | |||
| 0f86d7321f | |||
| f085b0fc8e | |||
| b4beba284d | |||
| c1e70e9e21 | |||
| fca2c698fc | |||
| 5d5b23f907 | |||
| 2860e58830 | |||
| e8dec6c143 | |||
| 8b2b19de4b | |||
| af162578c0 | |||
| c6ccfa4417 | |||
| 132001a1be | |||
| 830c09dde7 | |||
| 57bcde2511 | |||
| c1db5b43e5 | |||
| 7b7f29720c | |||
| 13320db360 | |||
| dd9d63d74e | |||
| 739ed2be6d | |||
| 95d9ed685f | |||
| 1064d60873 | |||
| 014c3249b5 | |||
| 59920a5537 | |||
| 8e04de4d65 | |||
| 3ff8ebea7d | |||
| 29096d6700 | |||
| 1c59fc829f | |||
| ca5c0427b8 | |||
| f1dd77bdfd | |||
| a93f74c3ec | |||
| a5b9d2dbd6 | |||
| 2e6e27991a | |||
| b0ae70a88f | |||
| af2e8ba7bd | |||
| 15ca8dac1d | |||
| b6f6d17daa | |||
| 4d06316d22 | |||
| 9290d7e96f | |||
| 10f931ab68 | |||
| 75986be154 | |||
| 1b53c9377d | |||
| 7b31c000cd | |||
| d180dd5f6a | |||
| b7d4d67bec | |||
| 8a018ed3a8 | |||
| fe41ab9c6b | |||
| 7cf00b4b58 | |||
| 224b2399bc | |||
| bef04df3b3 | |||
| a956707669 | |||
| d812af8535 | |||
| 0edb45d851 | |||
| e25903f282 | |||
| 591f98957f | |||
| 01eb6a7a5a | |||
| 2e9fc52ba2 | |||
| 25c5b0f695 | |||
| 88b242fe65 | |||
| 28b7414347 | |||
| 71e58336aa | |||
| b3388cfef9 | |||
| ad1cbc8318 | |||
| 6d47022bb5 | |||
| 4e96c77d2b | |||
| b1071e0870 | |||
| e786c456af | |||
| 68fb07ee0d | |||
| 35bf0b803c | |||
| ef1a142c59 | |||
| 14ff363ce6 | |||
| 7872bca40d | |||
| 4b4272ce85 | |||
| 28b99ad374 | |||
| b7fb9a7703 | |||
| 3eb4913863 | |||
| fe46afd571 | |||
| e8ba65ef22 | |||
| 4854b2630e | |||
| e7d3465cdd | |||
| b04975af2e | |||
| 947384aa6f | |||
| 8db65824bb | |||
| ec1c625a1a | |||
| ded2171375 | |||
| fdc388a117 | |||
| 2320cfd8e5 | |||
| 1be88b8454 | |||
| e3ea8ee06b | |||
| d7c10ae1b8 | |||
| 03f209b2b0 | |||
| c0ddac5eed | |||
| 0e06088b3e | |||
| 75de6bbb3d | |||
| 0e0189d518 | |||
| c166bfd334 | |||
| 496cb3bc68 | |||
| d5176b1b48 | |||
| 2560c5f711 | |||
| 062fcae014 | |||
| 90e6a4b94a | |||
| c7bf7dcb45 | |||
| 069ab7405f | |||
| ed2e8aa510 | |||
| 08d7ce7a2b | |||
| 8dabb8cbbd | |||
| 3cf265f6c9 | |||
| 1b8dd8cc83 | |||
| d12226eb7e | |||
| 6d9c5c34f2 | |||
| 251b1fb446 | |||
| f39df2ff46 | |||
| 945bcee3f5 | |||
| fef5c09a76 | |||
| 54a9851dee | |||
| b609659f65 | |||
| a352ecc771 | |||
| abbf3bc20f | |||
| 21704696da | |||
| ffa38694df | |||
| 090bdbeccd | |||
| 7f0d9fea54 | |||
| 8f6839dfe8 | |||
| 246d35fdb1 | |||
| 11b0037986 | |||
| ab34a23bb4 | |||
| 288b9f00e8 | |||
| 712842a235 | |||
| 82b6b3faf5 | |||
| 563d0f7566 | |||
| a9c605f7c9 | |||
| 21a1c1243b | |||
| 7c94f1792b | |||
| b0f87f4e37 | |||
| 4bb10cf89a | |||
| da22709623 | |||
| 7c8e0457ce | |||
| f18656738d | |||
| 517cf6205c | |||
| f45f0b492d | |||
| 2271d3d4c5 | |||
| b5293e4455 | |||
| c6614e2faa | |||
| b8ddc72fe8 | |||
| 3e63414b80 | |||
| 58338fc946 | |||
| acba7d1228 | |||
| 956d8ef0d8 | |||
| 7bd6db0c5d | |||
| a291af863c | |||
| 7f828783a7 | |||
| eb57a83bf5 | |||
| 9720679461 | |||
| cc10d69b47 | |||
| e5b8b2fc8e | |||
| b3880b3ec8 | |||
| eaafa7fb25 | |||
| be346af2ba | |||
| a5d53eaeba | |||
| af340eec7b | |||
| 0baac5d829 | |||
| 1631d48490 | |||
| f9874c3c37 | |||
| 2f8e49b8df | |||
| 8455b2c480 | |||
| fa25502803 | |||
| bfaa45252a | |||
| 9af3627b62 | |||
| 8edccedbbd | |||
| 8d020fd39a | |||
| 139314eaba | |||
| 9cbd5ccf05 | |||
| 314cab60aa | |||
| 025b53092e | |||
| 7a0ea2bdff | |||
| 0a79820dd6 | |||
| 7203ad93e4 | |||
| 504dda817a | |||
| 1069cff6cf | |||
| 2662150710 | |||
| ad7c187201 | |||
| d7125413e5 | |||
| 87d2d9e1f2 | |||
| 9d712b86fa | |||
| 69baf1e039 | |||
| 906707f0e0 | |||
| 3762ab1878 | |||
| 12d7fe7ebf | |||
| 5a6c278167 | |||
| bddfa15eb8 | |||
| 899de2ebe3 | |||
| eef578b939 | |||
| a7608171b1 | |||
| f3292c2916 | |||
| 048d6adfa3 | |||
| f004271e8b | |||
| 63ef2f1273 | |||
| 4d3b050a81 | |||
| f7f2b80028 | |||
| ec21d564b2 | |||
| 6d2b772f21 | |||
| d506dd2095 | |||
| c66028793d | |||
| 0e3467d3aa | |||
| d9dc6832e3 | |||
| a57d49abf1 | |||
| 614388e28f | |||
| 7e1a09fb64 | |||
| 6efbbd9cad | |||
| e0b5894e3f | |||
| 5ed153425b | |||
| c961c9be93 | |||
| 0bafc9d31f | |||
| a48cd6c824 | |||
| cb899b81e4 | |||
| 918151013e | |||
| 4cb9ebb5e3 | |||
| e14a5f1776 | |||
| 2437dc602c | |||
| 8962d84ed3 | |||
| 4172d2a8b1 | |||
| 78a2166efe | |||
| 20a2519d92 | |||
| a7da526885 | |||
| d2010c3510 | |||
| 14c0c6fe6b | |||
| 5d8be66167 | |||
| 9ac838a257 | |||
| 0cd1016cae | |||
| 49b8486f44 | |||
| 0a363ba5d5 | |||
| 5fbfaef31d | |||
| 9324fc4c07 | |||
| 171147dfcd | |||
| dee0b33cec | |||
| f9c7654b7c | |||
| b1e0371bb5 | |||
| f94957c68d | |||
| 03dd15f718 | |||
| 938b30604b | |||
| acff303897 | |||
| 978f4fb376 | |||
| 50e0a6704b | |||
| b4e9c0e655 | |||
| 97ab555e2d | |||
| 9bc12ec619 | |||
| e4c12dfe5c | |||
| ca0d8e4ab1 | |||
| 570dc7ef9a | |||
| 3e7cac972d | |||
| 9c7ac431b5 | |||
| 8f50b317cc | |||
| c5e2e8c4b0 | |||
| 7aec1f7653 | |||
| 65a677e6d4 | |||
| 8e9781c081 | |||
| d76d81eda3 | |||
| 7b439bbf6f | |||
| aea078d65f | |||
| 5834c3edcf | |||
| 1d40c026f4 | |||
| 00fb74c5b1 | |||
| 066dc77bd9 | |||
| f264092e74 | |||
| 052481c0a1 | |||
| 4e3f622de0 | |||
| 143c46fff0 | |||
| bc8b0c762d | |||
| 9ec92d1be4 | |||
| 29ee43a67d | |||
| 0f15f8f52d |
@@ -0,0 +1,8 @@
|
||||
[report]
|
||||
exclude_lines =
|
||||
pragma: no cover
|
||||
raise NotImplementedError
|
||||
def __repr__
|
||||
if __name__ == .__main__.:
|
||||
omit =
|
||||
subliminal/cli.py
|
||||
+64
-4
@@ -1,4 +1,64 @@
|
||||
build
|
||||
dist
|
||||
subliminal.egg-info
|
||||
*.pyc
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*,cover
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# Pycharm
|
||||
.idea
|
||||
|
||||
# Subliminal
|
||||
tests/data/mkv/
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
sudo: false
|
||||
|
||||
language: python
|
||||
|
||||
python:
|
||||
- 2.7
|
||||
- 3.3
|
||||
- 3.4
|
||||
|
||||
env:
|
||||
- PARSER=native
|
||||
- PARSER=lxml
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.cache/pip
|
||||
- tests/data/mkv
|
||||
|
||||
before_cache:
|
||||
- rm -f $HOME/.cache/pip/log/debug.log
|
||||
|
||||
install:
|
||||
- pip install -e .[test]
|
||||
- if [ $PARSER = "lxml" ]; then pip install lxml; fi
|
||||
- pip install coveralls
|
||||
|
||||
script: python setup.py test -a "--cov subliminal --verbose"
|
||||
|
||||
after_success: coveralls
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
Changelog
|
||||
---------
|
||||
|
||||
1.0.1
|
||||
^^^^^
|
||||
**release date:** 2015-07-23
|
||||
|
||||
* Fix unicode issues in CLI (python 2 only)
|
||||
* Fix score scaling in CLI (python 2 only)
|
||||
* Improve error handling in CLI
|
||||
* Color collect report in CLI
|
||||
|
||||
|
||||
1.0
|
||||
^^^
|
||||
**release date:** 2015-07-22
|
||||
|
||||
* Many changes and fixes
|
||||
* New test suite
|
||||
* New documentation
|
||||
* New CLI
|
||||
|
||||
|
||||
0.7.5
|
||||
^^^^^
|
||||
**release date:** 2015-03-04
|
||||
|
||||
* Update requirements
|
||||
* Remove BierDopje provider
|
||||
* Add pre-guessed video optional argument in scan_video
|
||||
* Improve hearing impaired support
|
||||
* Fix TVSubtitles and Podnapisi providers
|
||||
|
||||
|
||||
0.7.4
|
||||
^^^^^
|
||||
**release date:** 2014-01-27
|
||||
|
||||
* Fix requirements for guessit and babelfish
|
||||
|
||||
|
||||
0.7.3
|
||||
^^^^^
|
||||
**release date:** 2013-11-22
|
||||
|
||||
* Fix windows compatibility
|
||||
* Improve subtitle validation
|
||||
* Improve embedded subtitle languages detection
|
||||
* Improve unittests
|
||||
|
||||
|
||||
0.7.2
|
||||
^^^^^
|
||||
**release date:** 2013-11-10
|
||||
|
||||
* Fix TVSubtitles for ambiguous series
|
||||
* Add a CACHE_VERSION to force cache reloading on version change
|
||||
* Set CLI default cache expiration time to 30 days
|
||||
* Add podnapisi provider
|
||||
* Support script for languages e.g. Latn, Cyrl
|
||||
* Improve logging levels
|
||||
* Fix subtitle validation in some rare cases
|
||||
|
||||
|
||||
0.7.1
|
||||
^^^^^
|
||||
**release date:** 2013-11-06
|
||||
|
||||
* Improve CLI
|
||||
* Add login support for Addic7ed
|
||||
* Remove lxml dependency
|
||||
* Many fixes
|
||||
|
||||
|
||||
0.7.0
|
||||
^^^^^
|
||||
**release date:** 2013-10-29
|
||||
|
||||
**WARNING:** Complete rewrite of subliminal with backward incompatible changes
|
||||
|
||||
* Use enzyme to parse metadata of videos
|
||||
* Use babelfish to handle languages
|
||||
* Use dogpile.cache for caching
|
||||
* Use charade to detect subtitle encoding
|
||||
* Use pysrt for subtitle validation
|
||||
* Use entry points for subtitle providers
|
||||
* New subtitle score computation
|
||||
* Hearing impaired subtitles support
|
||||
* Drop async support
|
||||
* Drop a few providers
|
||||
* And much more...
|
||||
|
||||
|
||||
0.6.4
|
||||
^^^^^
|
||||
**release date:** 2013-05-19
|
||||
|
||||
* Fix requirements due to enzyme 0.3
|
||||
|
||||
|
||||
0.6.3
|
||||
^^^^^
|
||||
**release date:** 2013-01-17
|
||||
|
||||
* Fix requirements due to requests 1.0
|
||||
|
||||
|
||||
0.6.2
|
||||
^^^^^
|
||||
**release date:** 2012-09-15
|
||||
|
||||
* Fix BierDopje
|
||||
* Fix Addic7ed
|
||||
* Fix SubsWiki
|
||||
* Fix missing enzyme import
|
||||
* Add Catalan and Galician languages to Addic7ed
|
||||
* Add possible services in help message of the CLI
|
||||
* Allow existing filenames to be passed without the ./ prefix
|
||||
|
||||
|
||||
0.6.1
|
||||
^^^^^
|
||||
**release date:** 2012-06-24
|
||||
|
||||
* Fix subtitle release name in BierDopje
|
||||
* Fix subtitles being downloaded multiple times
|
||||
* Add Chinese support to TvSubtitles
|
||||
* Fix encoding issues
|
||||
* Fix single download subtitles without the force option
|
||||
* Add Spanish (Latin America) exception to Addic7ed
|
||||
* Fix group_by_video when a list entry has None as subtitles
|
||||
* Add support for Galician language in Subtitulos
|
||||
* Add an integrity check after subtitles download for Addic7ed
|
||||
* Add error handling for if not strict in Language
|
||||
* Fix TheSubDB hash method to return None if the file is too small
|
||||
* Fix guessit.Language in Video.scan
|
||||
* Fix language detection of subtitles
|
||||
|
||||
|
||||
0.6.0
|
||||
^^^^^
|
||||
**release date:** 2012-06-16
|
||||
|
||||
**WARNING:** Backward incompatible changes
|
||||
|
||||
* Fix --workers option in CLI
|
||||
* Use a dedicated module for languages
|
||||
* Use beautifulsoup4
|
||||
* Improve return types
|
||||
* Add scan_filter option
|
||||
* Add --age option in CLI
|
||||
* Add TvSubtitles service
|
||||
* Add Addic7ed service
|
||||
|
||||
|
||||
0.5.1
|
||||
^^^^^
|
||||
**release date:** 2012-03-25
|
||||
|
||||
* Improve error handling of enzyme parsing
|
||||
|
||||
|
||||
0.5
|
||||
^^^
|
||||
**release date:** 2012-03-25
|
||||
**WARNING:** Backward incompatible changes
|
||||
|
||||
* Use more unicode
|
||||
* New list_subtitles and download_subtitles methods
|
||||
* New Pool object for asynchronous work
|
||||
* Improve sort algorithm
|
||||
* Better error handling
|
||||
* Make sorting customizable
|
||||
* Remove class Subliminal
|
||||
* Remove permissions handling
|
||||
|
||||
|
||||
0.4
|
||||
^^^
|
||||
**release date:** 2011-11-11
|
||||
|
||||
* Many fixes
|
||||
* Better error handling
|
||||
|
||||
|
||||
0.3
|
||||
^^^
|
||||
**release date:** 2011-08-18
|
||||
|
||||
* Fix a bug when series is not guessed by guessit
|
||||
* Fix dependencies failure when installing package
|
||||
* Fix encoding issues with logging
|
||||
* Add a script to ease subtitles download
|
||||
* Add possibility to choose mode of created files
|
||||
* Add more checks before adjusting permissions
|
||||
|
||||
|
||||
0.2
|
||||
^^^
|
||||
**release date:** 2011-07-11
|
||||
|
||||
* Fix plugin configuration
|
||||
* Fix some encoding issues
|
||||
* Remove extra logging
|
||||
|
||||
|
||||
0.1
|
||||
^^^
|
||||
**release date:** *private release*
|
||||
|
||||
* Initial release
|
||||
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Antoine Bertin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1 @@
|
||||
include LICENSE HISTORY.rst requirements.txt
|
||||
@@ -1,6 +0,0 @@
|
||||
subliminal
|
||||
==========
|
||||
Python module to search and download subtitles
|
||||
|
||||
* [Project page](https://github.com/Diaoul/subliminal)
|
||||
* [Initial project by Patrick Dessalle](http://code.google.com/p/periscope/)
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
Subliminal
|
||||
==========
|
||||
Subtitles, faster than your thoughts.
|
||||
|
||||
.. image:: https://img.shields.io/pypi/v/subliminal.svg
|
||||
:target: https://pypi.python.org/pypi/subliminal
|
||||
:alt: Latest Version
|
||||
|
||||
.. image:: https://travis-ci.org/Diaoul/subliminal.svg?branch=master
|
||||
:target: https://travis-ci.org/Diaoul/subliminal
|
||||
:alt: Travis CI build status
|
||||
|
||||
.. image:: https://readthedocs.org/projects/subliminal/badge/?version=latest
|
||||
:target: https://subliminal.readthedocs.org/
|
||||
:alt: Documentation Status
|
||||
|
||||
.. image:: https://coveralls.io/repos/Diaoul/subliminal/badge.svg?branch=master&service=github
|
||||
:target: https://coveralls.io/github/Diaoul/subliminal?branch=master
|
||||
:alt: Code coverage
|
||||
|
||||
.. image:: https://img.shields.io/github/license/Diaoul/subliminal.svg
|
||||
:target: https://github.com/Diaoul/subliminal/blob/master/LICENSE
|
||||
:alt: License
|
||||
|
||||
|
||||
:Project page: https://github.com/Diaoul/subliminal
|
||||
:Documentation: https://subliminal.readthedocs.org/
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
CLI
|
||||
^^^
|
||||
Download English subtitles::
|
||||
|
||||
$ subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
|
||||
Collecting videos [####################################] 100%
|
||||
1 video collected / 0 video ignored / 0 error
|
||||
Downloading subtitles [####################################] 100%
|
||||
Downloaded 1 subtitle
|
||||
|
||||
Library
|
||||
^^^^^^^
|
||||
Download best subtitles in French and English for videos less than two weeks old in a video folder:
|
||||
|
||||
.. code:: python
|
||||
|
||||
from datetime import timedelta
|
||||
|
||||
from babelfish import Language
|
||||
from subliminal import download_best_subtitles, region, save_subtitles, scan_videos
|
||||
|
||||
# configure the cache
|
||||
region.configure('dogpile.cache.dbm', arguments={'filename': 'cachefile.dbm'})
|
||||
|
||||
# scan for videos newer than 2 weeks and their existing subtitles in a folder
|
||||
videos = [v for v in scan_videos('/video/folder') if v.age < timedelta(weeks=2)]
|
||||
|
||||
# download best subtitles
|
||||
subtitles = download_best_subtitles(videos, {Language('eng'), Language('fra')})
|
||||
|
||||
# save them to disk, next to the video
|
||||
save_subtitles(subtitles)
|
||||
+192
@@ -0,0 +1,192 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS = -n -W
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " applehelp to make an Apple Help Book"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/subliminal.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/subliminal.qhc"
|
||||
|
||||
applehelp:
|
||||
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
||||
@echo
|
||||
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
||||
@echo "N.B. You won't be able to view it unless you put it in" \
|
||||
"~/Library/Documentation/Help or install it in your application" \
|
||||
"bundle."
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/subliminal"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/subliminal"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
coverage:
|
||||
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
||||
@echo "Testing of coverage in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/coverage/python.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
||||
@@ -0,0 +1,7 @@
|
||||
API
|
||||
===
|
||||
.. automodule:: subliminal.api
|
||||
|
||||
.. data:: provider_manager
|
||||
|
||||
:class:`~stevedore.extension.ExtensionManager` based on the entry point ``subliminal.providers``
|
||||
@@ -0,0 +1,21 @@
|
||||
Cache
|
||||
=====
|
||||
.. module:: subliminal.cache
|
||||
|
||||
.. autodata:: CACHE_VERSION
|
||||
:annotation:
|
||||
|
||||
.. autodata:: SHOW_EXPIRATION_TIME
|
||||
:annotation:
|
||||
|
||||
.. autodata:: EPISODE_EXPIRATION_TIME
|
||||
:annotation:
|
||||
|
||||
.. data:: region
|
||||
:annotation:
|
||||
|
||||
The :class:`~dogpile.cache.region.CacheRegion`
|
||||
|
||||
|
||||
Refer to dogpile.cache's `region configuration documentation
|
||||
<http://dogpilecache.readthedocs.org/en/latest/usage.html#region-configuration>`_ to see how to configure the region
|
||||
@@ -0,0 +1,3 @@
|
||||
CLI
|
||||
===
|
||||
.. automodule:: subliminal.cli
|
||||
@@ -0,0 +1,3 @@
|
||||
Exceptions
|
||||
==========
|
||||
.. automodule:: subliminal.exceptions
|
||||
@@ -0,0 +1,3 @@
|
||||
Providers
|
||||
=========
|
||||
.. automodule:: subliminal.providers
|
||||
@@ -0,0 +1,3 @@
|
||||
Score
|
||||
=====
|
||||
.. automodule:: subliminal.score
|
||||
@@ -0,0 +1,3 @@
|
||||
Subtitle
|
||||
========
|
||||
.. automodule:: subliminal.subtitle
|
||||
@@ -0,0 +1,10 @@
|
||||
Video
|
||||
=====
|
||||
.. automodule:: subliminal.video
|
||||
:exclude-members: VIDEO_EXTENSIONS, SUBTITLE_EXTENSIONS
|
||||
|
||||
.. autodata:: VIDEO_EXTENSIONS
|
||||
:annotation:
|
||||
|
||||
.. autodata:: SUBTITLE_EXTENSIONS
|
||||
:annotation:
|
||||
@@ -0,0 +1,280 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>2</results></pagination><subtitle><id>1495142</id><pid>ZtAW</pid><title>The
|
||||
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/hu-the-big-bang-theory-2007-S05E18/ZtAW</url><uploaderId>40156</uploaderId><uploaderName>kvrle</uploaderName><release>The.Big.Bang.Theory.S05E18.HDTV-LOL
|
||||
The.Big.Bang.Theory.S05E18.720p.HDTV.x264-DIMENSION</release><languageId>15</languageId><languageName>Hungarian</languageName><language>hu</language><time>1330213369</time><tvSeason>5</tvSeason><tvEpisode>18</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>497</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>1495096</id><pid>ONAW</pid><title>The Big Bang
|
||||
Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/hu-the-big-bang-theory-2007-S05E18/ONAW</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>The.Big.Bang.Theory.S05E18.HDTV.XviD-FQM</release><languageId>15</languageId><languageName>Hungarian</languageName><language>hu</language><time>1330134575</time><tvSeason>5</tvSeason><tvEpisode>18</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>347</downloads><exactHashes /></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['2792']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/ZtAW/download?container=zip
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/ZtAW/download?container=zip']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/ZtAW/download?container=zip
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Connection: [keep-alive]
|
||||
Content-Disposition: [attachment; filename="e638ea178f406cb584f48051501e2cb4db4fce1d.zip"]
|
||||
Content-Length: ['10541']
|
||||
Content-Type: [application/octet-stream]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
ETag: ['"4f497ffb-292d"']
|
||||
Last-Modified: ['Sun, 26 Feb 2012 00:42:35 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
+316
@@ -0,0 +1,316 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# subliminal documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Jul 11 00:40:28 2015.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import sys
|
||||
import os
|
||||
import shlex
|
||||
import sphinx_rtd_theme
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
import subliminal
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.intersphinx',
|
||||
'sphinx.ext.viewcode',
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = subliminal.__title__
|
||||
copyright = ' '.join(subliminal.__copyright__.split()[1:])
|
||||
author = subliminal.__copyright__.split(', ')[1]
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = subliminal.__version__.split('-')[0]
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = subliminal.__version__
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
# html_theme_options = {
|
||||
# 'github_user': 'Diaoul',
|
||||
# 'github_repo': project,
|
||||
# 'travis_button': True,
|
||||
# 'gratipay_user': 'Diaoul'
|
||||
# }
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Language to be used for generating the HTML full-text search index.
|
||||
# Sphinx supports the following languages:
|
||||
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
|
||||
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
|
||||
#html_search_language = 'en'
|
||||
|
||||
# A dictionary with options for the search language support, empty by default.
|
||||
# Now only 'ja' uses this config value
|
||||
#html_search_options = {'type': 'default'}
|
||||
|
||||
# The name of a javascript file (relative to the configuration directory) that
|
||||
# implements a search results scorer. If empty, the default will be used.
|
||||
#html_search_scorer = 'scorer.js'
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = project + 'doc'
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, project + '.tex', project + ' Documentation',
|
||||
author, 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, project, project + ' Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, project, project + ' Documentation',
|
||||
author, project, 'Subtitles, faster than your thoughts',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
#texinfo_no_detailmenu = False
|
||||
|
||||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {
|
||||
'python': ('http://docs.python.org/3.4', None),
|
||||
'guessit': ('http://guessit.readthedocs.org/en/latest', None),
|
||||
'babelfish': ('http://babelfish.readthedocs.org/en/latest', None),
|
||||
'dogpilecache': ('http://dogpilecache.readthedocs.org/en/latest', None),
|
||||
'dogpilecore': ('http://dogpilecore.readthedocs.org/en/latest', None),
|
||||
'stevedore': ('http://docs.openstack.org/developer/stevedore', None),
|
||||
'click': ('http://click.pocoo.org/4', None)
|
||||
}
|
||||
|
||||
|
||||
# -- Options for autodoc -------------------------------------------------------
|
||||
autodoc_member_order = 'bysource'
|
||||
|
||||
autodoc_default_flags = ['members']
|
||||
@@ -0,0 +1,40 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import os
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
try:
|
||||
from unittest.mock import Mock
|
||||
except ImportError:
|
||||
from mock import Mock
|
||||
from vcr import VCR
|
||||
|
||||
from subliminal.cache import region
|
||||
|
||||
vcr = VCR(path_transformer=lambda path: path + '.yaml',
|
||||
match_on=['method', 'scheme', 'host', 'port', 'path', 'query', 'body'],
|
||||
cassette_library_dir=os.path.join('docs', 'cassettes'))
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, scope='session')
|
||||
def configure_region():
|
||||
region.configure('dogpile.cache.null')
|
||||
region.configure = Mock()
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def chdir(tmpdir, monkeypatch):
|
||||
monkeypatch.chdir(str(tmpdir))
|
||||
|
||||
|
||||
@pytest.yield_fixture(autouse=True)
|
||||
def use_cassette(request):
|
||||
with vcr.use_cassette('test_' + request.fspath.purebasename):
|
||||
yield
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def skip_python_2():
|
||||
if sys.version_info < (3, 0):
|
||||
return pytest.skip('Requires python 3')
|
||||
@@ -0,0 +1,49 @@
|
||||
.. subliminal documentation master file, created by
|
||||
sphinx-quickstart on Sat Jul 11 00:40:28 2015.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Welcome to subliminal!
|
||||
======================
|
||||
Subliminal is a python library to search and download subtitles.
|
||||
It comes with an easy to use yet powerful :abbr:`CLI (command-line interface)` suitable for direct use or cron jobs.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
user/usage
|
||||
user/how_it_works
|
||||
user/cli
|
||||
user/provider_guide
|
||||
|
||||
|
||||
API Documentation
|
||||
-----------------
|
||||
If you are looking for information on a specific function, class or method, this part of the documentation is for you.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
api/api
|
||||
api/video
|
||||
api/subtitle
|
||||
api/providers
|
||||
api/cache
|
||||
api/score
|
||||
api/cli
|
||||
api/exceptions
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
MIT
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
+263
@@ -0,0 +1,263 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set BUILDDIR=_build
|
||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
||||
set I18NSPHINXOPTS=%SPHINXOPTS% .
|
||||
if NOT "%PAPER%" == "" (
|
||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
||||
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
|
||||
)
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
if "%1" == "help" (
|
||||
:help
|
||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
||||
echo. html to make standalone HTML files
|
||||
echo. dirhtml to make HTML files named index.html in directories
|
||||
echo. singlehtml to make a single large HTML file
|
||||
echo. pickle to make pickle files
|
||||
echo. json to make JSON files
|
||||
echo. htmlhelp to make HTML files and a HTML help project
|
||||
echo. qthelp to make HTML files and a qthelp project
|
||||
echo. devhelp to make HTML files and a Devhelp project
|
||||
echo. epub to make an epub
|
||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
||||
echo. text to make text files
|
||||
echo. man to make manual pages
|
||||
echo. texinfo to make Texinfo files
|
||||
echo. gettext to make PO message catalogs
|
||||
echo. changes to make an overview over all changed/added/deprecated items
|
||||
echo. xml to make Docutils-native XML files
|
||||
echo. pseudoxml to make pseudoxml-XML files for display purposes
|
||||
echo. linkcheck to check all external links for integrity
|
||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
||||
echo. coverage to run coverage check of the documentation if enabled
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "clean" (
|
||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
||||
del /q /s %BUILDDIR%\*
|
||||
goto end
|
||||
)
|
||||
|
||||
|
||||
REM Check if sphinx-build is available and fallback to Python version if any
|
||||
%SPHINXBUILD% 2> nul
|
||||
if errorlevel 9009 goto sphinx_python
|
||||
goto sphinx_ok
|
||||
|
||||
:sphinx_python
|
||||
|
||||
set SPHINXBUILD=python -m sphinx.__init__
|
||||
%SPHINXBUILD% 2> nul
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.http://sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:sphinx_ok
|
||||
|
||||
|
||||
if "%1" == "html" (
|
||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "dirhtml" (
|
||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "singlehtml" (
|
||||
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pickle" (
|
||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the pickle files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "json" (
|
||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the JSON files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "htmlhelp" (
|
||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "qthelp" (
|
||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\subliminal.qhcp
|
||||
echo.To view the help file:
|
||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\subliminal.ghc
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "devhelp" (
|
||||
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "epub" (
|
||||
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latex" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdf" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf
|
||||
cd %~dp0
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdfja" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf-ja
|
||||
cd %~dp0
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "text" (
|
||||
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The text files are in %BUILDDIR%/text.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "man" (
|
||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "texinfo" (
|
||||
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "gettext" (
|
||||
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "changes" (
|
||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.The overview file is in %BUILDDIR%/changes.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "linkcheck" (
|
||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Link check complete; look for any errors in the above output ^
|
||||
or in %BUILDDIR%/linkcheck/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "doctest" (
|
||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Testing of doctests in the sources finished, look at the ^
|
||||
results in %BUILDDIR%/doctest/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "coverage" (
|
||||
%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Testing of coverage in the sources finished, look at the ^
|
||||
results in %BUILDDIR%/coverage/python.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "xml" (
|
||||
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The XML files are in %BUILDDIR%/xml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pseudoxml" (
|
||||
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
|
||||
goto end
|
||||
)
|
||||
|
||||
:end
|
||||
@@ -0,0 +1,77 @@
|
||||
.. _cli:
|
||||
|
||||
CLI
|
||||
===
|
||||
|
||||
subliminal
|
||||
----------
|
||||
.. code-block:: none
|
||||
|
||||
$ subliminal --help
|
||||
Usage: subliminal [OPTIONS] COMMAND [ARGS]...
|
||||
|
||||
Subtitles, faster than your thoughts.
|
||||
|
||||
Options:
|
||||
--addic7ed USERNAME PASSWORD Addic7ed configuration.
|
||||
--cache-dir DIRECTORY Path to the cache directory. [default:
|
||||
~/.config/subliminal]
|
||||
--debug Print useful information for debugging subliminal and for
|
||||
reporting bugs.
|
||||
--version Show the version and exit.
|
||||
--help Show this message and exit.
|
||||
|
||||
Commands:
|
||||
cache Cache management.
|
||||
download Download best subtitles.
|
||||
|
||||
Suggestions and bug reports are greatly appreciated: https://github.com/Diaoul/subliminal/
|
||||
|
||||
|
||||
subliminal download
|
||||
-------------------
|
||||
.. code-block:: none
|
||||
|
||||
$ subliminal download --help
|
||||
Usage: subliminal download [OPTIONS] PATH...
|
||||
|
||||
Download best subtitles.
|
||||
|
||||
PATH can be an directory containing videos, a video file path or a video file name. It can be
|
||||
used multiple times.
|
||||
|
||||
If an existing subtitle is detected (external or embedded) in the correct language, the
|
||||
download is skipped for the associated video.
|
||||
|
||||
Options:
|
||||
-l, --language LANGUAGE Language as IETF code, e.g. en, pt-BR (can be used multiple
|
||||
times). [required]
|
||||
-p, --provider [addic7ed|opensubtitles|podnapisi|thesubdb|tvsubtitles]
|
||||
Provider to use (can be used multiple times).
|
||||
-a, --age AGE Filter videos newer than AGE, e.g. 12h, 1w2d.
|
||||
-d, --directory DIR Directory where to save subtitles, default is next to the video
|
||||
file.
|
||||
-e, --encoding ENC Subtitle file encoding, default is to preserve original
|
||||
encoding.
|
||||
-s, --single Save subtitle without language code in the file name, i.e. use
|
||||
.srt extension.
|
||||
-f, --force Force download even if a subtitle already exist.
|
||||
-hi, --hearing-impaired Prefer hearing impaired subtitles.
|
||||
-m, --min-score INTEGER RANGE Minimum score for a subtitle to be downloaded (0 to 100).
|
||||
-v, --verbose Increase verbosity.
|
||||
--help Show this message and exit.
|
||||
|
||||
|
||||
subliminal cache
|
||||
----------------
|
||||
.. code-block:: none
|
||||
|
||||
$ subliminal cache --help
|
||||
Usage: subliminal cache [OPTIONS]
|
||||
|
||||
Cache management.
|
||||
|
||||
Options:
|
||||
--clear-subliminal Clear subliminal's cache. Use this ONLY if your cache is corrupted or if
|
||||
you experience issues.
|
||||
--help Show this message and exit.
|
||||
@@ -0,0 +1,48 @@
|
||||
How it works
|
||||
============
|
||||
|
||||
Providers
|
||||
---------
|
||||
Subliminal uses multiple providers to give users a vast choice and have a better chance to find the best matching
|
||||
subtitles. Current supported providers are:
|
||||
|
||||
* Addic7ed
|
||||
* OpenSubtitles
|
||||
* Podnapisi
|
||||
* TheSubDB
|
||||
* TvSubtitles
|
||||
|
||||
Providers all inherit the same :class:`~subliminal.providers.Provider` base class and thus share the same API.
|
||||
They are registered on the ``subliminal.providers`` entry point and are exposed through the
|
||||
:data:`~subliminal.api.provider_manager` for easy access.
|
||||
|
||||
To make working with multiple providers seamlessly, the :class:`~subliminal.api.ProviderPool` exposes the same API but
|
||||
distributes it to its providers.
|
||||
|
||||
.. _scoring:
|
||||
|
||||
Scoring
|
||||
-------
|
||||
Rating subtitles and comparing them is probably the most difficult part and this is where subliminal excels with its
|
||||
powerful scoring algorithm.
|
||||
|
||||
Using `guessit <http://guessit.readthedocs.org>`_ and `enzyme <http://enzyme.readthedocs.org>`_, subliminal extracts
|
||||
properties of the video and match them with the properties of the subtitles found with the providers.
|
||||
|
||||
Equations in :mod:`subliminal.score` give a score to each property (called a match). The more matches the video and
|
||||
the subtitle have the higher the score computed with :func:`~subliminal.subtitle.compute_score` gets.
|
||||
|
||||
|
||||
Libraries
|
||||
---------
|
||||
Various libraries are used by subliminal and are key to its success:
|
||||
|
||||
* `guessit <http://guessit.readthedocs.org>`_ to guess informations from filenames
|
||||
* `enzyme <http://enzyme.readthedocs.org>`_ to detect embedded subtitles in videos and read other video metadata
|
||||
* `babelfish <http://babelfish.readthedocs.org>`_ to work with languages
|
||||
* `requests <http://docs.python-requests.org>`_ to make human readable HTTP requests
|
||||
* `BeautifulSoup <http://www.crummy.com/software/BeautifulSoup>`_ to parse HTML and XML
|
||||
* `dogpile.cache <http://dogpilecache.readthedocs.org>`_ to cache intermediate search results
|
||||
* `stevedore <http://docs.openstack.org/developer/stevedore/>`_ to manage the provider entry point
|
||||
* `chardet <http://chardet.readthedocs.org>`_ to detect subtitles' encoding
|
||||
* `pysrt <https://github.com/byroot/pysrt>`_ to validate downloaded subtitles
|
||||
@@ -0,0 +1,102 @@
|
||||
Provider Guide
|
||||
==============
|
||||
This guide is going to explain how to add a :class:`~subliminal.providers.Provider` to subliminal. You are encouraged
|
||||
to take a look at the existing providers, it can be a nice base to start your own provider.
|
||||
|
||||
|
||||
Requirements
|
||||
------------
|
||||
When starting a provider you should be able to answer to the following questions:
|
||||
|
||||
* What languages does my provider support?
|
||||
* What are the language codes for the supported languages?
|
||||
* Does my provider deliver subtitles for episodes? for movies?
|
||||
* Does my provider require a video hash?
|
||||
|
||||
Each response of these questions will help you set the correct attributes for your
|
||||
:class:`~subliminal.providers.Provider`.
|
||||
|
||||
|
||||
Video Validation
|
||||
----------------
|
||||
Not all providers deliver subtitles for :class:`~subliminal.video.Episode`. Some may require a hash.
|
||||
The :meth:`~subliminal.providers.Provider.check` method does validation against a :class:`~subliminal.video.Video`
|
||||
object and will return `False` if the given :class:`~subliminal.video.Video` isn't suitable. If you're not happy
|
||||
with the default implementation, you can override it.
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
API keys must not be configurable by the user and must remain linked to subliminal. Hence they must be written
|
||||
in the provider module.
|
||||
|
||||
Per-user authentication is allowed and must be configured at instantiation as keyword arguments. Configuration
|
||||
will be done by the user through the `provider_configs` argument of the :func:`~subliminal.api.list_subtitles` and
|
||||
:func:`~subliminal.api.download_best_subtitles` functions. No network operation must be done during instantiation,
|
||||
only configuration. Any error in the configuration must raise a
|
||||
:class:`~subliminal.exceptions.ConfigurationError`.
|
||||
|
||||
|
||||
Beyond this point, if an error occurs, a generic :class:`~subliminal.exceptions.ProviderError` exception
|
||||
must be raised. You can also use more explicit exception classes :class:`~subliminal.exceptions.AuthenticationError`
|
||||
and :class:`~subliminal.exceptions.DownloadLimitExceeded`.
|
||||
|
||||
|
||||
Initialization / Termination
|
||||
----------------------------
|
||||
Actual authentication operations must take place in the :meth:`~subliminal.providers.Provider.initialize` method.
|
||||
If you need anything to be executed when the provider isn't used anymore like logout,
|
||||
use :meth:`~subliminal.providers.Provider.terminate`.
|
||||
|
||||
|
||||
Caching policy
|
||||
--------------
|
||||
To save bandwidth and improve querying time, intermediate data should be cached when possible. Typical use case is
|
||||
when a query to retrieve show ids is required prior to the query to actually search for subtitles. In that case
|
||||
the function that gets the show id from the show name must be cached.
|
||||
Expiration time should be :data:`~subliminal.cache.SHOW_EXPIRATION_TIME` for shows and
|
||||
:data:`~subliminal.cache.EPISODE_EXPIRATION_TIME` for episodes.
|
||||
|
||||
|
||||
Language
|
||||
--------
|
||||
To be able to handle various language codes, subliminal makes use of `babelfish <http://babelfish.readthedocs.org>`_
|
||||
Language and converters. You must set the attribute :attr:`~subliminal.providers.Provider.languages` with a set of
|
||||
supported :class:`~babelfish.language.Language`.
|
||||
|
||||
If you cannot find a suitable converter for your provider, you can `make one of your own
|
||||
<http://babelfish.readthedocs.org/en/latest/#custom-converters>`_.
|
||||
|
||||
|
||||
Querying
|
||||
--------
|
||||
The :meth:`~subliminal.providers.Provider.query` method parameters must include all aspects of provider's querying with
|
||||
primary types.
|
||||
|
||||
|
||||
Subtitle
|
||||
--------
|
||||
A custom :class:`~subliminal.subtitle.Subtitle` subclass must be created to represent a subtitle from the provider.
|
||||
It must have relevant attributes that can be used to compute the matches of the subtitle against a
|
||||
:class:`~subliminal.video.Video` object.
|
||||
|
||||
|
||||
Score computation
|
||||
-----------------
|
||||
To be able to compare subtitles coming from different providers between them, the
|
||||
:meth:`~subliminal.subtitle.Subtitle.get_matches` method must be implemented.
|
||||
If `guessit <http://guessit.readthedocs.org>`_ is used to extract data from the
|
||||
:class:`~subliminal.subtitle.Subtitle` subclass, you can use :func:`~subliminal.subtitle.guess_matches`
|
||||
as a helper to compute matches between the :class:`~subliminal.video.Video` and the :class:`~guessit.guess.Guess`.
|
||||
|
||||
Refer to the `scores` attribute of :class:`~subliminal.video.Episode` and :class:`~subliminal.video.Movie`
|
||||
for a list of possible matches.
|
||||
|
||||
|
||||
Unittesting
|
||||
-----------
|
||||
All possible uses of :meth:`~subliminal.providers.Provider.query`,
|
||||
:meth:`~subliminal.providers.Provider.list_subtitles` and :meth:`~subliminal.providers.Provider.download_subtitle`
|
||||
methods must have integration tests. Use `vcrpy <https://github.com/kevin1024/vcrpy>`_ for recording and playback
|
||||
of network activity.
|
||||
Other functions must be unittested. If necessary, you can use :mod:`unittest.mock` to mock some functions.
|
||||
@@ -0,0 +1,144 @@
|
||||
Usage
|
||||
=====
|
||||
CLI
|
||||
---
|
||||
Download English subtitles::
|
||||
|
||||
$ subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
|
||||
Collecting videos [####################################] 100%
|
||||
1 video collected / 0 video ignored
|
||||
Downloading subtitles [####################################] 100%
|
||||
Downloaded 1 subtitle
|
||||
|
||||
.. warning::
|
||||
|
||||
For cron usage, make sure to specify a maximum age (with ``--age``) so subtitles are searched for recent videos
|
||||
only. Otherwise you will get banned from the providers for abuse due to too many requests. If subliminal didn't
|
||||
find subtitles for an old video, it's unlikely it will find subtitles for that video ever anyway.
|
||||
|
||||
See :ref:`cli` for more details on the available commands and options.
|
||||
|
||||
|
||||
High level API
|
||||
--------------
|
||||
You can call subliminal in many different ways depending on how much control you want over the process. For most use
|
||||
cases, you can stick to the standard API.
|
||||
|
||||
Common
|
||||
^^^^^^
|
||||
Let's start by importing subliminal:
|
||||
|
||||
>>> from __future__ import unicode_literals
|
||||
>>> import os
|
||||
>>> from babelfish import *
|
||||
>>> from subliminal import *
|
||||
|
||||
Before going further, there are a few things to know about subliminal.
|
||||
|
||||
Video
|
||||
^^^^^
|
||||
The :class:`~subliminal.video.Movie` and :class:`~subliminal.video.Episode` classes represent a video,
|
||||
existing or not. You can create a video by name (or path) with :meth:`Video.fromname <subliminal.video.Video.fromname>`,
|
||||
use :func:`~subliminal.video.scan_video` on an existing file path to get even more information about the video or
|
||||
use :func:`~subliminal.video.scan_videos` on an existing directory path to scan a whole directory for videos.
|
||||
|
||||
>>> video = Video.fromname('The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4')
|
||||
>>> video
|
||||
<Episode ['The Big Bang Theory', 5x18]>
|
||||
|
||||
Here video informations were guessed based on the name of the video, you can access some video attributes:
|
||||
|
||||
>>> video.video_codec
|
||||
'h264'
|
||||
>>> video.release_group
|
||||
'LOL'
|
||||
|
||||
Configuration
|
||||
^^^^^^^^^^^^^
|
||||
Before proceeding to listing and downloading subtitles, you need to configure the cache. Subliminal uses a cache to
|
||||
reduce repeated queries to providers and improve overall performance with no impact on search quality. For the sake
|
||||
of this example, we're going to use a memory backend.
|
||||
|
||||
>>> my_region = region.configure('dogpile.cache.memory')
|
||||
|
||||
.. warning::
|
||||
|
||||
Choose a cache that fits your application and prefer persistant over volatile backends. The ``file`` backend is
|
||||
usually a good choice.
|
||||
See `dogpile.cache's documentation <http://dogpilecache.readthedocs.org>`_ for more details on backends.
|
||||
|
||||
Now that we're done with the basics, let's have some *real* fun.
|
||||
|
||||
Listing
|
||||
^^^^^^^
|
||||
To list subtitles, subliminal provides a :func:`~subliminal.api.list_subtitles` function that will return all found
|
||||
subtitles:
|
||||
|
||||
>>> subtitles = list_subtitles([video], {Language('hun')}, providers=['podnapisi'])
|
||||
>>> subtitles[video]
|
||||
[<PodnapisiSubtitle 'ZtAW' [hu]>, <PodnapisiSubtitle 'ONAW' [hu]>]
|
||||
|
||||
.. note::
|
||||
|
||||
As you noticed, all parameters are iterables but only contain one item which means you can deal with a lot of
|
||||
videos, languages and providers at the same time. For the sake of this example, we filter providers to use only one,
|
||||
pass ``providers=None`` (default) to search on all providers.
|
||||
|
||||
Scoring
|
||||
^^^^^^^
|
||||
It's usual you have multiple candidates for subtitles. To help you chose which one to download, subliminal can compare
|
||||
them to the video and tell you exactly what matches with :meth:`~subliminal.subtitle.Subtitle.get_matches`:
|
||||
|
||||
>>> for s in subtitles[video]:
|
||||
... sorted(s.get_matches(video))
|
||||
['episode', 'format', 'hearing_impaired', 'release_group', 'season', 'series', 'video_codec', 'year']
|
||||
['episode', 'format', 'hearing_impaired', 'season', 'series', 'year']
|
||||
|
||||
And then compute a score with those matches with :func:`~subliminal.subtitle.compute_score`:
|
||||
|
||||
>>> for s in subtitles[video]:
|
||||
... {s: compute_score(s.get_matches(video), video)}
|
||||
{<PodnapisiSubtitle 'ZtAW' [hu]>: 132}
|
||||
{<PodnapisiSubtitle 'ONAW' [hu]>: 117}
|
||||
|
||||
Now you should have a better idea about which one you should choose.
|
||||
|
||||
Downloading
|
||||
^^^^^^^^^^^
|
||||
We can settle on the first subtitle and download its content using :func:`~subliminal.api.download_subtitles`:
|
||||
|
||||
>>> subtitle = subtitles[video][0]
|
||||
>>> subtitle.content is None
|
||||
True
|
||||
>>> download_subtitles([subtitle])
|
||||
>>> subtitle.content.split(b'\n')[2]
|
||||
b'Elszaladok a boltba'
|
||||
|
||||
If you want a string instead of bytes, you can access decoded content with the
|
||||
:attr:`~subliminal.subtitle.Subtitle.text` property:
|
||||
|
||||
>>> subtitle.text.split('\n')[3]
|
||||
'néhány apróságért.'
|
||||
|
||||
Downloading best subtitles
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Downloading best subtitles is what you want to do in almost all cases, as a shortcut for listing, scoring and
|
||||
downloading you can use :func:`~subliminal.api.download_best_subtitles`:
|
||||
|
||||
>>> best_subtitles = download_best_subtitles([video], {Language('hun')}, providers=['podnapisi'])
|
||||
>>> best_subtitles[video]
|
||||
[<PodnapisiSubtitle 'ZtAW' [hu]>]
|
||||
>>> best_subtitle = best_subtitles[video][0]
|
||||
>>> best_subtitle.content.split(b'\n')[2]
|
||||
b'Elszaladok a boltba'
|
||||
|
||||
We end up with the same subtitle but with one line of code. Neat.
|
||||
|
||||
Save
|
||||
^^^^
|
||||
We got ourselves a nice subtitle now we can save it on the file system using :func:`~subliminal.api.save_subtitles`:
|
||||
|
||||
>>> save_subtitles(video, [best_subtitle])
|
||||
[<PodnapisiSubtitle 'ZtAW' [hu]>]
|
||||
>>> os.listdir()
|
||||
['The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.hu.srt']
|
||||
@@ -0,0 +1 @@
|
||||
-e .
|
||||
@@ -0,0 +1,19 @@
|
||||
[build_sphinx]
|
||||
source-dir = docs/
|
||||
build-dir = docs/_build
|
||||
all_files = 1
|
||||
|
||||
[upload_sphinx]
|
||||
upload-dir = docs/_build/html
|
||||
|
||||
[pytest]
|
||||
norecursedirs = build dist env .tox .eggs
|
||||
addopts = --pep8 --flakes --doctest-glob='*.rst'
|
||||
pep8maxlinelength = 120
|
||||
pep8ignore =
|
||||
docs/conf.py ALL
|
||||
subliminal/__init__.py E402
|
||||
flakes-ignore =
|
||||
docs/conf.py ALL
|
||||
subliminal/__init__.py UnusedImport
|
||||
doctest_optionflags= NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL
|
||||
@@ -1,44 +1,102 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
import io
|
||||
import re
|
||||
import sys
|
||||
|
||||
from setuptools import setup
|
||||
from subliminal import __version__
|
||||
from setuptools import setup, find_packages
|
||||
from setuptools.command.test import test as TestCommand
|
||||
|
||||
|
||||
class PyTest(TestCommand):
|
||||
user_options = [('pytest-args=', 'a', 'Arguments to pass to py.test')]
|
||||
|
||||
def initialize_options(self):
|
||||
TestCommand.initialize_options(self)
|
||||
self.pytest_args = []
|
||||
|
||||
def finalize_options(self):
|
||||
TestCommand.finalize_options(self)
|
||||
self.test_args = []
|
||||
self.test_suite = True
|
||||
|
||||
def run_tests(self):
|
||||
# import here, cause outside the eggs aren't loaded
|
||||
import pytest
|
||||
errno = pytest.main(self.pytest_args)
|
||||
sys.exit(errno)
|
||||
|
||||
# requirements
|
||||
install_requirements = ['guessit>=0.9.1', 'babelfish>=0.5.2', 'enzyme>=0.4.1', 'beautifulsoup4>=4.2.0',
|
||||
'requests>=2.0', 'click>=4.0', 'dogpile.cache>=0.5.4', 'stevedore>=1.0.0',
|
||||
'chardet>=2.3.0', 'pysrt>=1.0.1', 'six>=1.9.0']
|
||||
|
||||
test_requirements = ['sympy', 'vcrpy>=1.6.1', 'pytest', 'pytest-pep8', 'pytest-flakes',
|
||||
'pytest-cov']
|
||||
if sys.version_info < (3, 3):
|
||||
test_requirements.append('mock')
|
||||
|
||||
dev_requirements = ['tox', 'sphinx', 'wheel']
|
||||
|
||||
# package informations
|
||||
with io.open('subliminal/__init__.py', 'r') as f:
|
||||
version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]$', f.read(),
|
||||
re.MULTILINE).group(1)
|
||||
|
||||
if not version:
|
||||
raise RuntimeError('Cannot find version information')
|
||||
|
||||
with io.open('README.rst', 'r', encoding='utf-8') as f:
|
||||
readme = f.read()
|
||||
|
||||
with io.open('HISTORY.rst', 'r', encoding='utf-8') as f:
|
||||
history = f.read()
|
||||
|
||||
|
||||
setup(name='subliminal',
|
||||
version=__version__,
|
||||
license="LGPLv3",
|
||||
description="Subliminal - Subtitles, faster than your thoughts",
|
||||
classifiers=['Development Status :: 4 - Beta',
|
||||
'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',
|
||||
'Intended Audience :: Developers',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python :: 2.6',
|
||||
'Topic :: Software Development :: Libraries :: Python Modules',
|
||||
'Topic :: Multimedia :: Video'],
|
||||
keywords='subliminal video movie subtitle python library',
|
||||
author="Antoine Bertin",
|
||||
author_email="diaoulael@gmail.com",
|
||||
url="https://github.com/Diaoul/subliminal",
|
||||
packages=["subliminal", "subliminal/plugins"],
|
||||
py_modules=["subliminal"],
|
||||
install_requires=["BeautifulSoup>=3.2.0", "guessit>=0.2"])
|
||||
version=version,
|
||||
license='MIT',
|
||||
description='Subtitles, faster than your thoughts',
|
||||
long_description=readme + '\n\n' + history,
|
||||
keywords='subtitle subtitles video movie episode tv show',
|
||||
url='https://github.com/Diaoul/subliminal',
|
||||
author='Antoine Bertin',
|
||||
author_email='diaoulael@gmail.com',
|
||||
packages=find_packages(),
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: MIT License',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Topic :: Software Development :: Libraries :: Python Modules',
|
||||
'Topic :: Multimedia :: Video'
|
||||
],
|
||||
entry_points={
|
||||
'subliminal.providers': [
|
||||
'addic7ed = subliminal.providers.addic7ed:Addic7edProvider',
|
||||
'opensubtitles = subliminal.providers.opensubtitles:OpenSubtitlesProvider',
|
||||
'podnapisi = subliminal.providers.podnapisi:PodnapisiProvider',
|
||||
'thesubdb = subliminal.providers.thesubdb:TheSubDBProvider',
|
||||
'tvsubtitles = subliminal.providers.tvsubtitles:TVsubtitlesProvider'
|
||||
],
|
||||
'babelfish.language_converters': [
|
||||
'addic7ed = subliminal.converters.addic7ed:Addic7edConverter',
|
||||
'tvsubtitles = subliminal.converters.tvsubtitles:TVsubtitlesConverter'
|
||||
],
|
||||
'console_scripts': [
|
||||
'subliminal = subliminal.cli:subliminal'
|
||||
]
|
||||
},
|
||||
install_requires=install_requirements,
|
||||
tests_require=test_requirements,
|
||||
extras_require={
|
||||
'test': test_requirements,
|
||||
'dev': dev_requirements
|
||||
},
|
||||
cmdclass={'test': PyTest})
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import threading
|
||||
import plugins
|
||||
import logging
|
||||
import traceback
|
||||
|
||||
|
||||
class PluginWorker(threading.Thread):
|
||||
"""Threaded plugin worker"""
|
||||
def __init__(self, taskQueue, resultQueue):
|
||||
threading.Thread.__init__(self)
|
||||
self.taskQueue = taskQueue
|
||||
self.resultQueue = resultQueue
|
||||
self.logger = logging.getLogger('subliminal.worker')
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
task = self.taskQueue.get()
|
||||
result = None
|
||||
try:
|
||||
if not task: # this is a poison pill
|
||||
break
|
||||
elif task['task'] == 'list': # the task is a listing
|
||||
# get the corresponding plugin
|
||||
plugin = getattr(plugins, task['plugin'])(task['config'])
|
||||
# split tasks if the plugin can't handle multi queries
|
||||
splitedTasks = plugin.splitTask(task)
|
||||
myTask = splitedTasks.pop()
|
||||
for st in splitedTasks:
|
||||
self.taskQueue.put(st)
|
||||
result = plugin.list(myTask['filenames'], myTask['languages'])
|
||||
elif task['task'] == 'download': # the task is to download
|
||||
result = None
|
||||
while task['subtitle']:
|
||||
subtitle = task['subtitle'].pop(0)
|
||||
# get the corresponding plugin
|
||||
plugin = getattr(plugins, subtitle["plugin"])(task['config'])
|
||||
path = plugin.download(subtitle)
|
||||
if path:
|
||||
subtitle["subtitlepath"] = path
|
||||
result = subtitle
|
||||
break
|
||||
else:
|
||||
self.logger.error(u'Unknown task %s submited to worker %s' % (task['task'], self.name))
|
||||
except:
|
||||
self.logger.debug(traceback.print_exc())
|
||||
self.logger.error(u"Worker couldn't do the job %s, continue anyway" % task['task'])
|
||||
finally:
|
||||
self.resultQueue.put(result)
|
||||
self.taskQueue.task_done()
|
||||
self.logger.debug(u"Thread %s terminated" % self.name)
|
||||
+14
-21
@@ -1,25 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
__title__ = 'subliminal'
|
||||
__version__ = '1.0.1'
|
||||
__author__ = 'Antoine Bertin'
|
||||
__license__ = 'MIT'
|
||||
__copyright__ = 'Copyright 2015, Antoine Bertin'
|
||||
|
||||
__version__ = '0.2'
|
||||
import logging
|
||||
|
||||
from .api import (ProviderPool, check_video, provider_manager, download_best_subtitles, download_subtitles,
|
||||
list_subtitles, save_subtitles)
|
||||
from .cache import region
|
||||
from .exceptions import Error, ProviderError
|
||||
from .providers import Provider
|
||||
from .subtitle import Subtitle, compute_score
|
||||
from .video import SUBTITLE_EXTENSIONS, VIDEO_EXTENSIONS, Episode, Movie, Video, scan_video, scan_videos
|
||||
|
||||
from subliminal import *
|
||||
logging.getLogger(__name__).addHandler(logging.NullHandler())
|
||||
|
||||
@@ -0,0 +1,415 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from collections import defaultdict
|
||||
import io
|
||||
import logging
|
||||
import operator
|
||||
import os.path
|
||||
import socket
|
||||
|
||||
from babelfish import Language
|
||||
import requests
|
||||
from stevedore import EnabledExtensionManager, ExtensionManager
|
||||
|
||||
from .subtitle import compute_score, get_subtitle_path
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
provider_manager = ExtensionManager('subliminal.providers')
|
||||
|
||||
|
||||
class ProviderPool(object):
|
||||
"""A pool of providers with the same API as a single :class:`~subliminal.providers.Provider`.
|
||||
|
||||
It has a few extra features:
|
||||
|
||||
* Lazy loads providers when needed and supports the :keyword:`with` statement to :meth:`terminate`
|
||||
the providers on exit.
|
||||
* Automatically discard providers on failure.
|
||||
|
||||
:param providers: name of providers to use, if not all.
|
||||
:type providers: list
|
||||
:param dict provider_configs: provider configuration as keyword arguments per provider name to pass when
|
||||
instanciating the :class:`~subliminal.providers.Provider`.
|
||||
|
||||
"""
|
||||
def __init__(self, providers=None, provider_configs=None):
|
||||
#: Name of providers to use
|
||||
self.providers = providers or provider_manager.names()
|
||||
|
||||
#: Provider configuration
|
||||
self.provider_configs = provider_configs or {}
|
||||
|
||||
#: Initialized providers
|
||||
self.initialized_providers = {}
|
||||
|
||||
#: Discarded providers
|
||||
self.discarded_providers = set()
|
||||
|
||||
#: Dedicated :data:`provider_manager` as :class:`~stevedore.enabled.EnabledExtensionManager`
|
||||
self.manager = EnabledExtensionManager(provider_manager.namespace, lambda e: e.name in self.providers)
|
||||
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
self.terminate()
|
||||
|
||||
def __getitem__(self, name):
|
||||
if name not in self.initialized_providers:
|
||||
logger.info('Initializing provider %s', name)
|
||||
provider = self.manager[name].plugin(**self.provider_configs.get(name, {}))
|
||||
provider.initialize()
|
||||
self.initialized_providers[name] = provider
|
||||
|
||||
return self.initialized_providers[name]
|
||||
|
||||
def __delitem__(self, name):
|
||||
if name not in self.initialized_providers:
|
||||
raise KeyError(name)
|
||||
|
||||
try:
|
||||
logger.info('Terminating provider %s', name)
|
||||
self.initialized_providers[name].terminate()
|
||||
except (requests.Timeout, socket.timeout):
|
||||
logger.error('Provider %r timed out, improperly terminated', name)
|
||||
except:
|
||||
logger.exception('Provider %r terminated unexpectedly', name)
|
||||
|
||||
del self.initialized_providers[name]
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.initialized_providers)
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
"""List subtitles.
|
||||
|
||||
:param video: video to list subtitles for.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: languages to search for.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:return: found subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
subtitles = []
|
||||
|
||||
for name in self.providers:
|
||||
# check discarded providers
|
||||
if name in self.discarded_providers:
|
||||
logger.debug('Skipping discarded provider %r', name)
|
||||
continue
|
||||
|
||||
# check video validity
|
||||
if not self.manager[name].plugin.check(video):
|
||||
logger.info('Skipping provider %r: not a valid video', name)
|
||||
continue
|
||||
|
||||
# check supported languages
|
||||
provider_languages = self.manager[name].plugin.languages & languages
|
||||
if not provider_languages:
|
||||
logger.info('Skipping provider %r: no language to search for', name)
|
||||
continue
|
||||
|
||||
# list subtitles
|
||||
logger.info('Listing subtitles with provider %r and languages %r', name, provider_languages)
|
||||
try:
|
||||
provider_subtitles = self[name].list_subtitles(video, provider_languages)
|
||||
except (requests.Timeout, socket.timeout):
|
||||
logger.error('Provider %r timed out, discarding it', name)
|
||||
self.discarded_providers.add(name)
|
||||
continue
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r, discarding it', name)
|
||||
self.discarded_providers.add(name)
|
||||
continue
|
||||
subtitles.extend(provider_subtitles)
|
||||
|
||||
return subtitles
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
"""Download `subtitle`'s :attr:`~subliminal.subtitle.Subtitle.content`.
|
||||
|
||||
:param subtitle: subtitle to download.
|
||||
:type subtitle: :class:`~subliminal.subtitle.Subtitle`
|
||||
:return: `True` if the subtitle has been successfully downloaded, `False` otherwise.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
# check discarded providers
|
||||
if subtitle.provider_name in self.discarded_providers:
|
||||
logger.warning('Provider %r is discarded', subtitle.provider_name)
|
||||
return False
|
||||
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
try:
|
||||
self[subtitle.provider_name].download_subtitle(subtitle)
|
||||
except (requests.Timeout, socket.timeout):
|
||||
logger.error('Provider %r timed out, discarding it', subtitle.provider_name)
|
||||
self.discarded_providers.add(subtitle.provider_name)
|
||||
return False
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r, discarding it', subtitle.provider_name)
|
||||
self.discarded_providers.add(subtitle.provider_name)
|
||||
return False
|
||||
|
||||
# check subtitle validity
|
||||
if not subtitle.is_valid():
|
||||
logger.error('Invalid subtitle')
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def download_best_subtitles(self, subtitles, video, languages, min_score=0, hearing_impaired=False, only_one=False,
|
||||
scores=None):
|
||||
"""Download the best matching subtitles.
|
||||
|
||||
:param subtitles: the subtitles to use.
|
||||
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:param video: video to download subtitles for.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: languages to download.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:param int min_score: minimum score for a subtitle to be downloaded.
|
||||
:param bool hearing_impaired: hearing impaired preference.
|
||||
:param bool only_one: download only one subtitle, not one per language.
|
||||
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are
|
||||
used.
|
||||
:return: downloaded subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
# sort subtitles by score
|
||||
scored_subtitles = sorted([(s, compute_score(s.get_matches(video, hearing_impaired=hearing_impaired), video,
|
||||
scores=scores))
|
||||
for s in subtitles], key=operator.itemgetter(1), reverse=True)
|
||||
|
||||
# download best subtitles, falling back on the next on error
|
||||
downloaded_subtitles = []
|
||||
for subtitle, score in scored_subtitles:
|
||||
# check score
|
||||
if score < min_score:
|
||||
logger.info('Score %d is below min_score (%d)', (score, min_score))
|
||||
break
|
||||
|
||||
# check downloaded languages
|
||||
if subtitle.language in set(s.language for s in downloaded_subtitles):
|
||||
logger.debug('Skipping subtitle: %r already downloaded', subtitle.language)
|
||||
continue
|
||||
|
||||
# download
|
||||
logger.info('Downloading subtitle %r with score %d', subtitle, score)
|
||||
if self.download_subtitle(subtitle):
|
||||
downloaded_subtitles.append(subtitle)
|
||||
|
||||
# stop when all languages are downloaded
|
||||
if set(s.language for s in downloaded_subtitles) == languages:
|
||||
logger.debug('All languages downloaded')
|
||||
break
|
||||
|
||||
# stop if only one subtitle is requested
|
||||
if only_one:
|
||||
logger.debug('Only one subtitle downloaded')
|
||||
break
|
||||
|
||||
return downloaded_subtitles
|
||||
|
||||
def terminate(self):
|
||||
"""Terminate all the :attr:`initialized_providers`."""
|
||||
logger.debug('Terminating initialized providers')
|
||||
for name in list(self.initialized_providers):
|
||||
del self[name]
|
||||
|
||||
|
||||
def check_video(video, languages=None, age=None, undefined=False):
|
||||
"""Perform some checks on the `video`.
|
||||
|
||||
All the checks are optional. Return `False` if any of this check fails:
|
||||
|
||||
* `languages` already exist in `video`'s :attr:`~subliminal.video.Video.subtitle_languages`.
|
||||
* `video` is older than `age`.
|
||||
* `video` has an `undefined` language in :attr:`~subliminal.video.Video.subtitle_languages`.
|
||||
|
||||
:param video: video to check.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: desired languages.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:param datetime.timedelta age: maximum age of the video.
|
||||
:param bool undefined: fail on existing undefined language.
|
||||
:return: `True` if the video passes the checks, `False` otherwise.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
# language test
|
||||
if languages and not (languages - video.subtitle_languages):
|
||||
logger.debug('All languages %r exist', languages)
|
||||
return False
|
||||
|
||||
# age test
|
||||
if age and video.age > age:
|
||||
logger.debug('Video is older than %r', age)
|
||||
return False
|
||||
|
||||
# undefined test
|
||||
if undefined and Language('und') in video.subtitle_languages:
|
||||
logger.debug('Undefined language found')
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def list_subtitles(videos, languages, **kwargs):
|
||||
"""List subtitles.
|
||||
|
||||
The `videos` must pass the `languages` check of :func:`check_video`.
|
||||
|
||||
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
|
||||
|
||||
:param videos: videos to list subtitles for.
|
||||
:type videos: set of :class:`~subliminal.video.Video`
|
||||
:param languages: languages to search for.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:return: found subtitles per video.
|
||||
:rtype: dict of :class:`~subliminal.video.Video` to list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
listed_subtitles = defaultdict(list)
|
||||
|
||||
# check videos
|
||||
checked_videos = []
|
||||
for video in videos:
|
||||
if not check_video(video, languages=languages):
|
||||
logger.info('Skipping video %r', video)
|
||||
continue
|
||||
checked_videos.append(video)
|
||||
|
||||
# return immediatly if no video passed the checks
|
||||
if not checked_videos:
|
||||
return listed_subtitles
|
||||
|
||||
# list subtitles
|
||||
with ProviderPool(**kwargs) as pool:
|
||||
for video in checked_videos:
|
||||
logger.info('Listing subtitles for %r', video)
|
||||
subtitles = pool.list_subtitles(video, languages - video.subtitle_languages)
|
||||
listed_subtitles[video].extend(subtitles)
|
||||
logger.info('Found %d subtitle(s)', len(subtitles))
|
||||
|
||||
return listed_subtitles
|
||||
|
||||
|
||||
def download_subtitles(subtitles, **kwargs):
|
||||
"""Download :attr:`~subliminal.subtitle.Subtitle.content` of `subtitles`.
|
||||
|
||||
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
|
||||
|
||||
:param subtitles: subtitles to download.
|
||||
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
with ProviderPool(**kwargs) as pool:
|
||||
for subtitle in subtitles:
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
pool.download_subtitle(subtitle)
|
||||
|
||||
|
||||
def download_best_subtitles(videos, languages, min_score=0, hearing_impaired=False, only_one=False, scores=None,
|
||||
**kwargs):
|
||||
"""List and download the best matching subtitles.
|
||||
|
||||
The `videos` must pass the `languages` and `undefined` (`only_one`) checks of :func:`check_video`.
|
||||
|
||||
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
|
||||
|
||||
:param videos: videos to download subtitles for.
|
||||
:type videos: set of :class:`~subliminal.video.Video`
|
||||
:param languages: languages to download.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:param int min_score: minimum score for a subtitle to be downloaded.
|
||||
:param bool hearing_impaired: hearing impaired preference.
|
||||
:param bool only_one: download only one subtitle, not one per language.
|
||||
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are used.
|
||||
:return: downloaded subtitles per video.
|
||||
:rtype: dict of :class:`~subliminal.video.Video` to list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
downloaded_subtitles = defaultdict(list)
|
||||
|
||||
# check videos
|
||||
checked_videos = []
|
||||
for video in videos:
|
||||
if not check_video(video, languages=languages, undefined=only_one):
|
||||
logger.info('Skipping video %r')
|
||||
continue
|
||||
checked_videos.append(video)
|
||||
|
||||
# return immediatly if no video passed the checks
|
||||
if not checked_videos:
|
||||
return downloaded_subtitles
|
||||
|
||||
# download best subtitles
|
||||
with ProviderPool(**kwargs) as pool:
|
||||
for video in checked_videos:
|
||||
logger.info('Downloading best subtitles for %r', video)
|
||||
subtitles = pool.download_best_subtitles(pool.list_subtitles(video, languages - video.subtitle_languages),
|
||||
video, languages, min_score=min_score,
|
||||
hearing_impaired=hearing_impaired, only_one=only_one,
|
||||
scores=scores)
|
||||
logger.info('Downloaded %d subtitle(s)', len(subtitles))
|
||||
downloaded_subtitles[video].extend(subtitles)
|
||||
|
||||
return downloaded_subtitles
|
||||
|
||||
|
||||
def save_subtitles(video, subtitles, single=False, directory=None, encoding=None):
|
||||
"""Save subtitles on filesystem.
|
||||
|
||||
Subtitles are saved in the order of the list. If a subtitle with a language has already been saved, other subtitles
|
||||
with the same language are silently ignored.
|
||||
|
||||
The extension used is `.lang.srt` by default or `.srt` is `single` is `True`, with `lang` being the IETF code for
|
||||
the :attr:`~subliminal.subtitle.Subtitle.language` of the subtitle.
|
||||
|
||||
:param video: video of the subtitles.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param subtitles: subtitles to save.
|
||||
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:param bool single: save a single subtitle, default is to save one subtitle per language.
|
||||
:param str directory: path to directory where to save the subtitles, default is next to the video.
|
||||
:param str encoding: encoding in which to save the subtitles, default is to keep original encoding.
|
||||
:return: the saved subtitles
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
saved_subtitles = []
|
||||
for subtitle in subtitles:
|
||||
# check content
|
||||
if subtitle.content is None:
|
||||
logger.error('Skipping subtitle %r: no content', subtitle)
|
||||
continue
|
||||
|
||||
# check language
|
||||
if subtitle.language in set(s.language for s in saved_subtitles):
|
||||
logger.debug('Skipping subtitle %r: language already saved', subtitle)
|
||||
continue
|
||||
|
||||
# create subtitle path
|
||||
subtitle_path = get_subtitle_path(video.name, None if single else subtitle.language)
|
||||
if directory is not None:
|
||||
subtitle_path = os.path.join(directory, os.path.split(subtitle_path)[1])
|
||||
|
||||
# save content as is or in the specified encoding
|
||||
logger.info('Saving %r to %r', subtitle, subtitle_path)
|
||||
if encoding is None:
|
||||
with io.open(subtitle_path, 'wb') as f:
|
||||
f.write(subtitle.content)
|
||||
else:
|
||||
with io.open(subtitle_path, 'w', encoding=encoding) as f:
|
||||
f.write(subtitle.text)
|
||||
saved_subtitles.append(subtitle)
|
||||
|
||||
# check single
|
||||
if single:
|
||||
break
|
||||
|
||||
return saved_subtitles
|
||||
@@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
|
||||
from dogpile.cache import make_region
|
||||
|
||||
|
||||
#: Subliminal's cache version
|
||||
CACHE_VERSION = 1
|
||||
|
||||
#: Expiration time for show caching
|
||||
SHOW_EXPIRATION_TIME = datetime.timedelta(weeks=3).total_seconds()
|
||||
|
||||
#: Expiration time for episode caching
|
||||
EPISODE_EXPIRATION_TIME = datetime.timedelta(days=3).total_seconds()
|
||||
|
||||
|
||||
region = make_region()
|
||||
@@ -0,0 +1,323 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Subliminal uses `click <http://click.pocoo.org>`_ to provide a powerful :abbr:`CLI (command-line interface)`.
|
||||
|
||||
"""
|
||||
from __future__ import unicode_literals, division
|
||||
from collections import defaultdict
|
||||
from datetime import timedelta
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
from babelfish import Error as BabelfishError, Language
|
||||
import click
|
||||
from dogpile.cache.backends.file import AbstractFileLock
|
||||
from dogpile.core import ReadWriteMutex
|
||||
|
||||
from subliminal import (Episode, Movie, ProviderPool, Video, __version__, check_video, provider_manager, region,
|
||||
save_subtitles, scan_video, scan_videos)
|
||||
from subliminal.subtitle import compute_score
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class MutexLock(AbstractFileLock):
|
||||
""":class:`MutexLock` is a thread-based rw lock based on :class:`dogpile.core.ReadWriteMutex`."""
|
||||
def __init__(self, filename):
|
||||
self.mutex = ReadWriteMutex()
|
||||
|
||||
def acquire_read_lock(self, wait):
|
||||
ret = self.mutex.acquire_read_lock(wait)
|
||||
return wait or ret
|
||||
|
||||
def acquire_write_lock(self, wait):
|
||||
ret = self.mutex.acquire_write_lock(wait)
|
||||
return wait or ret
|
||||
|
||||
def release_read_lock(self):
|
||||
return self.mutex.release_read_lock()
|
||||
|
||||
def release_write_lock(self):
|
||||
return self.mutex.release_write_lock()
|
||||
|
||||
|
||||
class StringPath(click.Path):
|
||||
"""A :class:`~click.Path` as :class:`str`."""
|
||||
def convert(self, value, param, ctx):
|
||||
if isinstance(value, bytes):
|
||||
try:
|
||||
enc = getattr(sys.stdin, 'encoding', None)
|
||||
if enc is not None:
|
||||
value = value.decode(enc)
|
||||
except UnicodeDecodeError:
|
||||
try:
|
||||
value = value.decode(click.utils.get_filesystem_encoding())
|
||||
except UnicodeDecodeError:
|
||||
self.fail('%s is not a correctly encoded path' % value.decode('utf-8', 'replace'))
|
||||
return super(StringPath, self).convert(value, param, ctx)
|
||||
|
||||
|
||||
class LanguageParamType(click.ParamType):
|
||||
""":class:`~click.ParamType` for languages that returns a :class:`~babelfish.language.Language`"""
|
||||
name = 'language'
|
||||
|
||||
def convert(self, value, param, ctx):
|
||||
try:
|
||||
return Language.fromietf(value)
|
||||
except BabelfishError:
|
||||
self.fail('%s is not a valid language' % value)
|
||||
|
||||
LANGUAGE = LanguageParamType()
|
||||
|
||||
|
||||
class AgeParamType(click.ParamType):
|
||||
""":class:`~click.ParamType` for age strings that returns a :class:`~datetime.timedelta`
|
||||
|
||||
An age string is in the form `number + identifier` with possible identifiers:
|
||||
|
||||
* ``w`` for weeks
|
||||
* ``d`` for days
|
||||
* ``h`` for hours
|
||||
|
||||
The form can be specified multiple times but only with that idenfier ordering. For example:
|
||||
|
||||
* ``1w2d4h`` for 1 week, 2 days and 4 hours
|
||||
* ``2w`` for 2 weeks
|
||||
* ``3w6h`` for 3 weeks and 6 hours
|
||||
|
||||
"""
|
||||
name = 'age'
|
||||
|
||||
def convert(self, value, param, ctx):
|
||||
match = re.match(r'^(?:(?P<weeks>\d+?)w)?(?:(?P<days>\d+?)d)?(?:(?P<hours>\d+?)h)?$', value)
|
||||
if not match:
|
||||
self.fail('%s is not a valid age' % value)
|
||||
|
||||
return timedelta(**{k: int(v) for k, v in match.groupdict(0).items()})
|
||||
|
||||
AGE = AgeParamType()
|
||||
|
||||
PROVIDER = click.Choice(sorted(provider_manager.names()))
|
||||
|
||||
subliminal_cache = 'subliminal.dbm'
|
||||
|
||||
|
||||
@click.group(context_settings={'max_content_width': 100}, epilog='Suggestions and bug reports are greatly appreciated: '
|
||||
'https://github.com/Diaoul/subliminal/')
|
||||
@click.option('--addic7ed', type=click.STRING, nargs=2, metavar='USERNAME PASSWORD', help='Addic7ed configuration.')
|
||||
@click.option('--cache-dir', type=click.Path(writable=True, resolve_path=True, file_okay=False),
|
||||
default=click.get_app_dir('subliminal'), show_default=True, expose_value=True,
|
||||
help='Path to the cache directory.')
|
||||
@click.option('--debug', is_flag=True, help='Print useful information for debugging subliminal and for reporting bugs.')
|
||||
@click.version_option(__version__)
|
||||
@click.pass_context
|
||||
def subliminal(ctx, addic7ed, cache_dir, debug):
|
||||
"""Subtitles, faster than your thoughts."""
|
||||
# create cache directory
|
||||
try:
|
||||
os.makedirs(cache_dir)
|
||||
except OSError:
|
||||
if not os.path.isdir(cache_dir):
|
||||
raise
|
||||
|
||||
# configure cache
|
||||
region.configure('dogpile.cache.dbm', expiration_time=timedelta(days=30),
|
||||
arguments={'filename': os.path.join(cache_dir, subliminal_cache), 'lock_factory': MutexLock})
|
||||
|
||||
# configure logging
|
||||
if debug:
|
||||
handler = logging.StreamHandler()
|
||||
handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
|
||||
logging.getLogger('subliminal').addHandler(handler)
|
||||
logging.getLogger('subliminal').setLevel(logging.DEBUG)
|
||||
|
||||
# provider configs
|
||||
ctx.obj = {'provider_configs': {}}
|
||||
if addic7ed:
|
||||
ctx.obj['provider_configs']['addic7ed'] = {'username': addic7ed[0], 'password': addic7ed[1]}
|
||||
|
||||
|
||||
@subliminal.command()
|
||||
@click.option('--clear-subliminal', is_flag=True, help='Clear subliminal\'s cache. Use this ONLY if your cache is '
|
||||
'corrupted or if you experience issues.')
|
||||
@click.pass_context
|
||||
def cache(ctx, clear_subliminal):
|
||||
"""Cache management."""
|
||||
if clear_subliminal:
|
||||
os.remove(os.path.join(ctx.parent.params['cache_dir'], subliminal_cache))
|
||||
click.echo('Subliminal\'s cache cleared.')
|
||||
else:
|
||||
click.echo('Nothing done.')
|
||||
|
||||
|
||||
@subliminal.command()
|
||||
@click.option('-l', '--language', type=LANGUAGE, required=True, multiple=True, help='Language as IETF code, '
|
||||
'e.g. en, pt-BR (can be used multiple times).')
|
||||
@click.option('-p', '--provider', type=PROVIDER, multiple=True, help='Provider to use (can be used multiple times).')
|
||||
@click.option('-a', '--age', type=AGE, help='Filter videos newer than AGE, e.g. 12h, 1w2d.')
|
||||
@click.option('-d', '--directory', type=click.STRING, metavar='DIR', help='Directory where to save subtitles, '
|
||||
'default is next to the video file.')
|
||||
@click.option('-e', '--encoding', type=click.STRING, metavar='ENC', help='Subtitle file encoding, default is to '
|
||||
'preserve original encoding.')
|
||||
@click.option('-s', '--single', is_flag=True, default=False, help='Save subtitle without language code in the file '
|
||||
'name, i.e. use .srt extension.')
|
||||
@click.option('-f', '--force', is_flag=True, default=False, help='Force download even if a subtitle already exist.')
|
||||
@click.option('-hi', '--hearing-impaired', is_flag=True, default=False, help='Prefer hearing impaired subtitles.')
|
||||
@click.option('-m', '--min-score', type=click.IntRange(0, 100), default=0, help='Minimum score for a subtitle '
|
||||
'to be downloaded (0 to 100).')
|
||||
@click.option('-v', '--verbose', count=True, help='Increase verbosity.')
|
||||
@click.argument('path', type=StringPath(), required=True, nargs=-1)
|
||||
@click.pass_obj
|
||||
def download(obj, provider, language, age, directory, encoding, single, force, hearing_impaired, min_score, verbose,
|
||||
path):
|
||||
"""Download best subtitles.
|
||||
|
||||
PATH can be an directory containing videos, a video file path or a video file name. It can be used multiple times.
|
||||
|
||||
If an existing subtitle is detected (external or embedded) in the correct language, the download is skipped for
|
||||
the associated video.
|
||||
|
||||
"""
|
||||
# process parameters
|
||||
language = set(language)
|
||||
|
||||
# scan videos
|
||||
videos = []
|
||||
ignored_videos = []
|
||||
errored_paths = []
|
||||
with click.progressbar(path, label='Collecting videos', item_show_func=lambda p: p or '') as bar:
|
||||
for p in bar:
|
||||
logger.debug('Collecting path %s', p)
|
||||
|
||||
# non-existing
|
||||
if not os.path.exists(p):
|
||||
try:
|
||||
video = Video.fromname(p)
|
||||
except:
|
||||
logger.exception('Unexpected error while collecting non-existing path %s', p)
|
||||
errored_paths.append(p)
|
||||
continue
|
||||
videos.append(video)
|
||||
continue
|
||||
|
||||
# directories
|
||||
if os.path.isdir(p):
|
||||
try:
|
||||
scanned_videos = scan_videos(p, subtitles=not force, embedded_subtitles=not force)
|
||||
except:
|
||||
logger.exception('Unexpected error while collecting directory path %s', p)
|
||||
errored_paths.append(p)
|
||||
continue
|
||||
for video in scanned_videos:
|
||||
if check_video(video, languages=language, age=age, undefined=single):
|
||||
videos.append(video)
|
||||
else:
|
||||
ignored_videos.append(video)
|
||||
continue
|
||||
|
||||
# other inputs
|
||||
try:
|
||||
video = scan_video(p, subtitles=not force, embedded_subtitles=not force)
|
||||
except:
|
||||
logger.exception('Unexpected error while collecting path %s', p)
|
||||
errored_paths.append(p)
|
||||
continue
|
||||
if check_video(video, languages=language, age=age, undefined=single):
|
||||
videos.append(video)
|
||||
else:
|
||||
ignored_videos.append(video)
|
||||
|
||||
# output errored paths
|
||||
if verbose > 0:
|
||||
for p in errored_paths:
|
||||
click.secho('%s errored' % p, fg='red')
|
||||
|
||||
# output ignored videos
|
||||
if verbose > 1:
|
||||
for video in ignored_videos:
|
||||
click.secho('%s ignored - subtitles: %s / age: %d day%s' % (
|
||||
os.path.split(video.name)[1],
|
||||
', '.join(str(s) for s in video.subtitle_languages) or 'none',
|
||||
video.age.days,
|
||||
's' if video.age.days > 1 else ''
|
||||
), fg='yellow')
|
||||
|
||||
# report collected videos
|
||||
click.echo('%s video%s collected / %s video%s ignored / %s error%s' % (
|
||||
click.style(str(len(videos)), bold=True, fg='green' if videos else None),
|
||||
's' if len(videos) > 1 else '',
|
||||
click.style(str(len(ignored_videos)), bold=True, fg='yellow' if ignored_videos else None),
|
||||
's' if len(ignored_videos) > 1 else '',
|
||||
click.style(str(len(errored_paths)), bold=True, fg='red' if errored_paths else None),
|
||||
's' if len(errored_paths) > 1 else '',
|
||||
))
|
||||
|
||||
# exit if no video collected
|
||||
if not videos:
|
||||
return
|
||||
|
||||
# download best subtitles
|
||||
downloaded_subtitles = defaultdict(list)
|
||||
with ProviderPool(providers=provider, provider_configs=obj['provider_configs']) as pool:
|
||||
with click.progressbar(videos, label='Downloading subtitles',
|
||||
item_show_func=lambda v: os.path.split(v.name)[1] if v is not None else '') as bar:
|
||||
for v in bar:
|
||||
subtitles = pool.download_best_subtitles(pool.list_subtitles(v, language - v.subtitle_languages),
|
||||
v, language, min_score=v.scores['hash'] * min_score / 100,
|
||||
hearing_impaired=hearing_impaired, only_one=single)
|
||||
downloaded_subtitles[v] = subtitles
|
||||
|
||||
# save subtitles
|
||||
total_subtitles = 0
|
||||
for v, subtitles in downloaded_subtitles.items():
|
||||
saved_subtitles = save_subtitles(v, subtitles, single=single, directory=directory, encoding=encoding)
|
||||
total_subtitles += len(saved_subtitles)
|
||||
|
||||
if verbose > 0:
|
||||
click.echo('%s subtitle%s downloaded for %s' % (click.style(str(len(saved_subtitles)), bold=True),
|
||||
's' if len(saved_subtitles) > 1 else '',
|
||||
os.path.split(v.name)[1]))
|
||||
|
||||
if verbose > 1:
|
||||
for s in saved_subtitles:
|
||||
matches = s.get_matches(v, hearing_impaired=hearing_impaired)
|
||||
score = compute_score(matches, v)
|
||||
|
||||
# score color
|
||||
score_color = None
|
||||
if isinstance(v, Movie):
|
||||
if score < v.scores['title']:
|
||||
score_color = 'red'
|
||||
elif score < v.scores['title'] + v.scores['year'] + v.scores['release_group']:
|
||||
score_color = 'yellow'
|
||||
else:
|
||||
score_color = 'green'
|
||||
elif isinstance(v, Episode):
|
||||
if score < v.scores['series'] + v.scores['season'] + v.scores['episode']:
|
||||
score_color = 'red'
|
||||
elif score < (v.scores['series'] + v.scores['season'] + v.scores['episode'] +
|
||||
v.scores['release_group']):
|
||||
score_color = 'yellow'
|
||||
else:
|
||||
score_color = 'green'
|
||||
|
||||
# scale score from 0 to 100 taking out preferences
|
||||
scaled_score = score
|
||||
if s.hearing_impaired == hearing_impaired:
|
||||
scaled_score -= v.scores['hearing_impaired']
|
||||
scaled_score *= 100 / v.scores['hash']
|
||||
|
||||
# echo some nice colored output
|
||||
click.echo(' - [{score}] {language} subtitle from {provider_name} (match on {matches})'.format(
|
||||
score=click.style('{:5.1f}'.format(scaled_score), fg=score_color, bold=score >= v.scores['hash']),
|
||||
language=s.language.name if s.language.country is None else '%s (%s)' % (s.language.name,
|
||||
s.language.country.name),
|
||||
provider_name=s.provider_name,
|
||||
matches=', '.join(sorted(matches, key=v.scores.get, reverse=True))
|
||||
))
|
||||
|
||||
if verbose == 0:
|
||||
click.echo('Downloaded %s subtitle%s' % (click.style(str(total_subtitles), bold=True),
|
||||
's' if total_subtitles > 1 else ''))
|
||||
@@ -0,0 +1,33 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from babelfish import LanguageReverseConverter, language_converters
|
||||
|
||||
|
||||
class Addic7edConverter(LanguageReverseConverter):
|
||||
def __init__(self):
|
||||
self.name_converter = language_converters['name']
|
||||
self.from_addic7ed = {'Català': ('cat',), 'Chinese (Simplified)': ('zho',), 'Chinese (Traditional)': ('zho',),
|
||||
'Euskera': ('eus',), 'Galego': ('glg',), 'Greek': ('ell',), 'Malay': ('msa',),
|
||||
'Portuguese (Brazilian)': ('por', 'BR'), 'Serbian (Cyrillic)': ('srp', None, 'Cyrl'),
|
||||
'Serbian (Latin)': ('srp',), 'Spanish (Latin America)': ('spa',),
|
||||
'Spanish (Spain)': ('spa',)}
|
||||
self.to_addic7ed = {('cat',): 'Català', ('zho',): 'Chinese (Simplified)', ('eus',): 'Euskera',
|
||||
('glg',): 'Galego', ('ell',): 'Greek', ('msa',): 'Malay',
|
||||
('por', 'BR'): 'Portuguese (Brazilian)', ('srp', None, 'Cyrl'): 'Serbian (Cyrillic)'}
|
||||
self.codes = self.name_converter.codes | set(self.from_addic7ed.keys())
|
||||
|
||||
def convert(self, alpha3, country=None, script=None):
|
||||
if (alpha3, country, script) in self.to_addic7ed:
|
||||
return self.to_addic7ed[(alpha3, country, script)]
|
||||
if (alpha3, country) in self.to_addic7ed:
|
||||
return self.to_addic7ed[(alpha3, country)]
|
||||
if (alpha3,) in self.to_addic7ed:
|
||||
return self.to_addic7ed[(alpha3,)]
|
||||
|
||||
return self.name_converter.convert(alpha3, country, script)
|
||||
|
||||
def reverse(self, addic7ed):
|
||||
if addic7ed in self.from_addic7ed:
|
||||
return self.from_addic7ed[addic7ed]
|
||||
|
||||
return self.name_converter.reverse(addic7ed)
|
||||
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from babelfish import LanguageReverseConverter, language_converters
|
||||
|
||||
|
||||
class TVsubtitlesConverter(LanguageReverseConverter):
|
||||
def __init__(self):
|
||||
self.alpha2_converter = language_converters['alpha2']
|
||||
self.from_tvsubtitles = {'br': ('por', 'BR'), 'ua': ('ukr',), 'gr': ('ell',), 'cn': ('zho',), 'jp': ('jpn',),
|
||||
'cz': ('ces',)}
|
||||
self.to_tvsubtitles = {v: k for k, v in self.from_tvsubtitles.items()}
|
||||
self.codes = self.alpha2_converter.codes | set(self.from_tvsubtitles.keys())
|
||||
|
||||
def convert(self, alpha3, country=None, script=None):
|
||||
if (alpha3, country) in self.to_tvsubtitles:
|
||||
return self.to_tvsubtitles[(alpha3, country)]
|
||||
if (alpha3,) in self.to_tvsubtitles:
|
||||
return self.to_tvsubtitles[(alpha3,)]
|
||||
|
||||
return self.alpha2_converter.convert(alpha3, country, script)
|
||||
|
||||
def reverse(self, tvsubtitles):
|
||||
if tvsubtitles in self.from_tvsubtitles:
|
||||
return self.from_tvsubtitles[tvsubtitles]
|
||||
|
||||
return self.alpha2_converter.reverse(tvsubtitles)
|
||||
@@ -1,66 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2011 Nic Wolfe <nic@wolfeden.ca>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import os
|
||||
import subliminal
|
||||
|
||||
|
||||
# This module tries to deal with the apparently random behavior of python when dealing with unicode <-> utf-8
|
||||
# encodings. It tries to just use unicode, but if that fails then it tries forcing it to utf-8. Any functions
|
||||
# which return something should always return unicode.
|
||||
|
||||
def fixStupidEncodings(x, silent=False):
|
||||
if type(x) == str:
|
||||
try:
|
||||
return x.decode(subliminal.SYS_ENCODING)
|
||||
except UnicodeDecodeError:
|
||||
subliminal.logger.error(u"Unable to decode value: " + repr(x))
|
||||
return None
|
||||
elif type(x) == unicode:
|
||||
return x
|
||||
else:
|
||||
subliminal.logger.log(u"Unknown value passed in, ignoring it: " + str(type(x)) + " (" + repr(x) + ":" + repr(type(x)) + ")", logging.DEBUG if silent else logging.ERROR)
|
||||
return None
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def fixListEncodings(x):
|
||||
if type(x) != list:
|
||||
return x
|
||||
else:
|
||||
return filter(lambda x: x != None, map(fixStupidEncodings, x))
|
||||
|
||||
|
||||
def ek(func, *args):
|
||||
result = None
|
||||
if os.name == 'nt':
|
||||
result = func(*args)
|
||||
else:
|
||||
result = func(*[x.encode(subliminal.SYS_ENCODING) if type(x) in (str, unicode) else x for x in args])
|
||||
|
||||
if type(result) == list:
|
||||
return fixListEncodings(result)
|
||||
elif type(result) == str:
|
||||
return fixStupidEncodings(result)
|
||||
else:
|
||||
return result
|
||||
@@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
"""Base class for exceptions in subliminal."""
|
||||
pass
|
||||
|
||||
|
||||
class ProviderError(Error):
|
||||
"""Exception raised by providers."""
|
||||
pass
|
||||
|
||||
|
||||
class ConfigurationError(ProviderError):
|
||||
"""Exception raised by providers when badly configured."""
|
||||
pass
|
||||
|
||||
|
||||
class AuthenticationError(ProviderError):
|
||||
"""Exception raised by providers when authentication failed."""
|
||||
pass
|
||||
|
||||
|
||||
class DownloadLimitExceeded(ProviderError):
|
||||
"""Exception raised by providers when download limit is exceeded."""
|
||||
pass
|
||||
@@ -1,158 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from BeautifulSoup import BeautifulSoup
|
||||
import guessit
|
||||
import PluginBase
|
||||
import zipfile
|
||||
import os
|
||||
import urllib2
|
||||
import urllib
|
||||
import traceback
|
||||
import httplib
|
||||
import re
|
||||
import socket
|
||||
|
||||
|
||||
class Addic7ed(PluginBase.PluginBase):
|
||||
site_url = 'http://www.addic7ed.com'
|
||||
site_name = 'Addic7ed'
|
||||
server_url = 'http://www.addic7ed.com'
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = False
|
||||
_plugin_languages = {u"English": "en",
|
||||
u"English (US)": "en",
|
||||
u"English (UK)": "en",
|
||||
u"Italian": "it",
|
||||
u"Portuguese": "pt",
|
||||
u"Portuguese (Brazilian)": "pt-br",
|
||||
u"Romanian": "ro",
|
||||
u"Español (Latinoamérica)": "es",
|
||||
u"Español (España)": "es",
|
||||
u"Spanish (Latin America)": "es",
|
||||
u"Español": "es",
|
||||
u"Spanish": "es",
|
||||
u"Spanish (Spain)": "es",
|
||||
u"French": "fr",
|
||||
u"Greek": "el",
|
||||
u"Arabic": "ar",
|
||||
u"German": "de",
|
||||
u"Croatian": "hr",
|
||||
u"Indonesian": "id",
|
||||
u"Hebrew": "he",
|
||||
u"Russian": "ru",
|
||||
u"Turkish": "tr",
|
||||
u"Swedish": "se",
|
||||
u"Czech": "cs",
|
||||
u"Dutch": "nl",
|
||||
u"Hungarian": "hu",
|
||||
u"Norwegian": "no",
|
||||
u"Polish": "pl",
|
||||
u"Persian": "fa"}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(Addic7ed, self).__init__(self._plugin_languages, config_dict, isRevert=True)
|
||||
#http://www.addic7ed.com/serie/Smallville/9/11/Absolute_Justice
|
||||
self.release_pattern = re.compile(" \nVersion (.+), ([0-9]+).([0-9])+ MBs")
|
||||
|
||||
def list(self, filenames, languages):
|
||||
''' Main method to call when you want to list subtitles '''
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
if not self.checkLanguages(languages):
|
||||
return []
|
||||
filepath = filenames[0]
|
||||
guess = guessit.guess_file_info(filepath, 'autodetect')
|
||||
if guess['type'] != 'episode':
|
||||
return []
|
||||
# add multiple things to the release group set
|
||||
release_group = set()
|
||||
if 'releaseGroup' in guess:
|
||||
release_group.add(guess['releaseGroup'])
|
||||
else:
|
||||
if 'title' in guess:
|
||||
release_group.add(guess['title'])
|
||||
if 'screenSize' in guess:
|
||||
release_group.add(guess['screenSize'])
|
||||
if len(release_group) == 0:
|
||||
return []
|
||||
self.release_group = release_group # used to sort results
|
||||
return self.query(guess['series'], guess['season'], guess['episodeNumber'], release_group, filepath, languages)
|
||||
|
||||
def query(self, name, season, episode, release_group, filepath, languages=None):
|
||||
''' Make a query and returns info about found subtitles '''
|
||||
searchname = name.lower().replace(" ", "_")
|
||||
searchurl = "%s/serie/%s/%s/%s/%s" % (self.server_url, searchname, season, episode, searchname)
|
||||
self.logger.debug(u"Searching in %s" % searchurl)
|
||||
try:
|
||||
req = urllib2.Request(searchurl, headers={'User-Agent': self.user_agent})
|
||||
page = urllib2.urlopen(req, timeout=self.timeout)
|
||||
except urllib2.HTTPError as inst:
|
||||
self.logger.info(u"Error: %s - %s" % (searchurl, inst))
|
||||
return []
|
||||
except urllib2.URLError as inst:
|
||||
self.logger.info(u"TimeOut: %s" % inst)
|
||||
return []
|
||||
soup = BeautifulSoup(page.read())
|
||||
sublinks = []
|
||||
for html_sub in soup("td", {"class": "NewsTitle", "colspan": "3"}):
|
||||
if not self.release_pattern.match(str(html_sub.contents[1])): # On not needed soup td result
|
||||
continue
|
||||
sub_teams = self.listTeams([self.release_pattern.match(str(html_sub.contents[1])).groups()[0]], [".", "_", " "])
|
||||
if not release_group.intersection(sub_teams): # On wrong team
|
||||
continue
|
||||
html_language = html_sub.findNext("td", {"class": "language"})
|
||||
sub_language = self.getRevertLanguage(html_language.contents[0].strip().replace(' ', ''))
|
||||
if languages and not sub_language in languages: # On wrong language
|
||||
continue
|
||||
html_status = html_language.findNextSibling('td')
|
||||
sub_status = html_status.find('b').string.strip()
|
||||
if not sub_status == 'Completed': # On not completed subtitles
|
||||
continue
|
||||
sub_link = self.server_url + html_status.findNextSibling('td', {'colspan': '3'}).find('a')['href']
|
||||
self.logger.debug(u'Found a match with teams: %s' % sub_teams)
|
||||
result = {}
|
||||
result["release"] = "%s.S%.2dE%.2d.%s" % (name.replace(" ", "."), int(season), int(episode), '.'.join(sub_teams))
|
||||
result["lang"] = sub_language
|
||||
result["link"] = sub_link
|
||||
result["page"] = searchurl
|
||||
result["filename"] = filepath
|
||||
result["plugin"] = self.getClassName()
|
||||
result["teams"] = sub_teams # used to sort
|
||||
sublinks.append(result)
|
||||
sublinks.sort(self._cmpTeams)
|
||||
return sublinks
|
||||
|
||||
def download(self, subtitle):
|
||||
'''pass the URL of the sub and the file it matches, will unzip it
|
||||
and return the path to the created file'''
|
||||
suburl = subtitle["link"]
|
||||
videofilename = subtitle["filename"]
|
||||
srtbasefilename = videofilename.rsplit(".", 1)[0]
|
||||
srtfilename = srtbasefilename + self.getExtension(subtitle)
|
||||
self.downloadFile(suburl, srtfilename)
|
||||
return srtfilename
|
||||
|
||||
def _cmpTeams(self, x, y):
|
||||
''' Sort based on teams matching '''
|
||||
return -cmp(len(x['teams'].intersection(self.release_group)), len(y['teams'].intersection(self.release_group)))
|
||||
@@ -1,170 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from xml.dom import minidom
|
||||
import guessit
|
||||
import PluginBase
|
||||
import os
|
||||
import pickle
|
||||
import traceback
|
||||
import urllib
|
||||
import urllib2
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class BierDopje(PluginBase.PluginBase):
|
||||
site_url = 'http://bierdopje.com'
|
||||
site_name = 'BierDopje'
|
||||
server_url = 'http://api.bierdopje.com/A2B638AC5D804C2E/'
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = True
|
||||
exceptions = {'the office': 10358,
|
||||
'the office us': 10358,
|
||||
'greys anatomy': 3733,
|
||||
'sanctuary us': 7904,
|
||||
'human target 2010': 12986,
|
||||
'csi miami': 2187,
|
||||
'castle 2009': 12708,
|
||||
'chase 2010': 14228,
|
||||
'the defenders 2010': 14225,
|
||||
'hawaii five-0 2010': 14211}
|
||||
_plugin_languages = {'en': 'en', 'nl': 'nl'}
|
||||
|
||||
def __init__(self, config_dict):
|
||||
super(BierDopje, self).__init__(self._plugin_languages, config_dict)
|
||||
#http://api.bierdopje.com/23459DC262C0A742/GetShowByName/30+Rock
|
||||
#http://api.bierdopje.com/23459DC262C0A742/GetAllSubsFor/94/5/1/en (30 rock, season 5, episode 1)
|
||||
if not config_dict or not config_dict['cache_dir']:
|
||||
raise Exception('Cache directory is mandatory for this plugin')
|
||||
self.showid_cache = ek.ek(os.path.join, config_dict['cache_dir'], "bierdopje_showid.cache")
|
||||
with self.lock:
|
||||
if not ek.ek(os.path.exists, self.showid_cache):
|
||||
if not ek.ek(os.path.exists, ek.ek(os.path.dirname, self.showid_cache)):
|
||||
raise Exception("Cache directory doesn't exists")
|
||||
f = open(self.showid_cache, 'w')
|
||||
pickle.dump({}, f)
|
||||
f.close()
|
||||
f = open(self.showid_cache, 'r')
|
||||
self.showids = pickle.load(f)
|
||||
self.logger.debug(u"Reading showids from cache: %s" % self.showids)
|
||||
f.close()
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
if not self.checkLanguages(languages):
|
||||
return []
|
||||
filepath = filenames[0]
|
||||
guess = guessit.guess_file_info(filepath, 'autodetect')
|
||||
if guess['type'] != 'episode':
|
||||
return []
|
||||
# add multiple things to the release group set
|
||||
release_group = set()
|
||||
if 'releaseGroup' in guess:
|
||||
release_group.add(guess['releaseGroup'].lower())
|
||||
else:
|
||||
if 'title' in guess:
|
||||
release_group.add(guess['title'].lower())
|
||||
if 'screenSize' in guess:
|
||||
release_group.add(guess['screenSize'].lower())
|
||||
if len(release_group) == 0:
|
||||
return []
|
||||
self.release_group = release_group # used to sort results
|
||||
return self.query(guess['series'], guess['season'], guess['episodeNumber'], release_group, filepath, languages)
|
||||
|
||||
def download(self, subtitle):
|
||||
"""Main method to call when you want to download a subtitle"""
|
||||
subpath = subtitle["filename"].rsplit(".", 1)[0] + self.getExtension(subtitle)
|
||||
self.downloadFile(subtitle["link"], subpath)
|
||||
return subpath
|
||||
|
||||
def query(self, name, season, episode, release_group, filepath, languages=None):
|
||||
"""Makes a query and returns info (link, lang) about found subtitles"""
|
||||
if languages:
|
||||
available_languages = list(set(languages).intersection((self._plugin_languages.values())))
|
||||
else:
|
||||
available_languages = self._plugin_languages.values()
|
||||
sublinks = []
|
||||
|
||||
# get the show id
|
||||
show_name = name.lower()
|
||||
if show_name in self.exceptions: # get it from exceptions
|
||||
show_id = self.exceptions[show_name]
|
||||
elif show_name in self.showids: # get it from cache
|
||||
show_id = self.showids[show_name]
|
||||
else: # retrieve it
|
||||
show_id_url = "%sGetShowByName/%s" % (self.server_url, urllib.quote(show_name))
|
||||
self.logger.debug(u"Retrieving show id from web at %s" % show_id_url)
|
||||
page = urllib2.urlopen(show_id_url)
|
||||
dom = minidom.parse(page)
|
||||
if not dom or len(dom.getElementsByTagName('showid')) == 0: # no proper result
|
||||
page.close()
|
||||
return []
|
||||
show_id = dom.getElementsByTagName('showid')[0].firstChild.data
|
||||
self.showids[show_name] = show_id
|
||||
with self.lock:
|
||||
f = open(self.showid_cache, 'w')
|
||||
self.logger.debug(u"Writing showid %s to cache file" % show_id)
|
||||
pickle.dump(self.showids, f)
|
||||
f.close()
|
||||
page.close()
|
||||
|
||||
# get the subs for the show id we have
|
||||
for language in available_languages:
|
||||
subs_url = "%sGetAllSubsFor/%s/%s/%s/%s" % (self.server_url, show_id, season, episode, language)
|
||||
self.logger.debug(u"Getting subtitles at %s" % subs_url)
|
||||
page = urllib2.urlopen(subs_url)
|
||||
dom = minidom.parse(page)
|
||||
page.close()
|
||||
for sub in dom.getElementsByTagName('result'):
|
||||
sub_release = sub.getElementsByTagName('filename')[0].firstChild.data
|
||||
if sub_release.endswith(".srt"):
|
||||
sub_release = sub_release[:-4]
|
||||
sub_release = sub_release + '.avi' # put a random extension for guessit not to fail guessing that file
|
||||
# guess information from subtitle
|
||||
sub_guess = guessit.guess_file_info(sub_release, 'episode')
|
||||
sub_release_group = set()
|
||||
if 'releaseGroup' in sub_guess:
|
||||
sub_release_group.add(sub_guess['releaseGroup'].lower())
|
||||
else:
|
||||
if 'title' in sub_guess:
|
||||
sub_release_group.add(sub_guess['title'].lower())
|
||||
if 'screenSize' in sub_guess:
|
||||
sub_release_group.add(sub_guess['screenSize'].lower())
|
||||
sub_link = sub.getElementsByTagName('downloadlink')[0].firstChild.data
|
||||
result = {}
|
||||
result["release"] = sub_release
|
||||
result["link"] = sub_link
|
||||
result["page"] = sub_link
|
||||
result["lang"] = language
|
||||
result["filename"] = filepath
|
||||
result["plugin"] = self.getClassName()
|
||||
result["releaseGroup"] = sub_release_group
|
||||
sublinks.append(result)
|
||||
sublinks.sort(self._cmpReleaseGroup)
|
||||
return sublinks
|
||||
|
||||
def _cmpReleaseGroup(self, x, y):
|
||||
"""Sort based on teams matching"""
|
||||
return -cmp(len(x['releaseGroup'].intersection(self.release_group)), len(y['releaseGroup'].intersection(self.release_group)))
|
||||
@@ -1,205 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import PluginBase
|
||||
import gzip
|
||||
import os
|
||||
import socket
|
||||
import xmlrpclib
|
||||
import guessit
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class OpenSubtitles(PluginBase.PluginBase):
|
||||
site_url = 'http://www.opensubtitles.org'
|
||||
site_name = 'OpenSubtitles'
|
||||
server_url = 'http://api.opensubtitles.org/xml-rpc'
|
||||
user_agent = 'Subliminal v0.2'
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = True
|
||||
_plugin_languages = {"en": "eng",
|
||||
"fr": "fre",
|
||||
"hu": "hun",
|
||||
"cs": "cze",
|
||||
"pl": "pol",
|
||||
"sk": "slo",
|
||||
"pt": "por",
|
||||
"pt-br": "pob",
|
||||
"es": "spa",
|
||||
"el": "ell",
|
||||
"ar": "ara",
|
||||
"sq": "alb",
|
||||
"hy": "arm",
|
||||
"ay": "ass",
|
||||
"bs": "bos",
|
||||
"bg": "bul",
|
||||
"ca": "cat",
|
||||
"zh": "chi",
|
||||
"hr": "hrv",
|
||||
"da": "dan",
|
||||
"nl": "dut",
|
||||
"eo": "epo",
|
||||
"et": "est",
|
||||
"fi": "fin",
|
||||
"gl": "glg",
|
||||
"ka": "geo",
|
||||
"de": "ger",
|
||||
"he": "heb",
|
||||
"hi": "hin",
|
||||
"is": "ice",
|
||||
"id": "ind",
|
||||
"it": "ita",
|
||||
"ja": "jpn",
|
||||
"kk": "kaz",
|
||||
"ko": "kor",
|
||||
"lv": "lav",
|
||||
"lt": "lit",
|
||||
"lb": "ltz",
|
||||
"mk": "mac",
|
||||
"ms": "may",
|
||||
"no": "nor",
|
||||
"oc": "oci",
|
||||
"fa": "per",
|
||||
"ro": "rum",
|
||||
"ru": "rus",
|
||||
"sr": "scc",
|
||||
"sl": "slv",
|
||||
"sv": "swe",
|
||||
"th": "tha",
|
||||
"tr": "tur",
|
||||
"uk": "ukr",
|
||||
"vi": "vie"}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(OpenSubtitles, self).__init__(self._plugin_languages, config_dict)
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles """
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
filepath = filenames[0]
|
||||
if ek.ek(os.path.isfile, filepath):
|
||||
filehash = self.hashFile(filepath)
|
||||
size = ek.ek(os.path.getsize, filepath)
|
||||
return self.query(moviehash=filehash, languages=languages, bytesize=size, filepath=filepath)
|
||||
else:
|
||||
return self.query(languages=languages, filepath=filepath)
|
||||
|
||||
def download(self, subtitle):
|
||||
"""Main method to call when you want to download a subtitle """
|
||||
subtitleFilename = subtitle["filename"].rsplit(".", 1)[0] + self.getExtension(subtitle)
|
||||
self.downloadFile(subtitle["link"], subtitleFilename + ".gz")
|
||||
f = ek.ek(gzip.open, subtitleFilename + ".gz")
|
||||
dump = ek.ek(open, subtitleFilename, "wb")
|
||||
dump.write(f.read())
|
||||
dump.close()
|
||||
f.close()
|
||||
ek.ek(os.remove, subtitleFilename + ".gz")
|
||||
return subtitleFilename
|
||||
|
||||
def query(self, filepath, imdbID=None, moviehash=None, bytesize=None, languages=None):
|
||||
"""Makes a query on OpenSubtitles and returns info about found subtitles.
|
||||
Note: if using moviehash, bytesize is required. """
|
||||
# prepare the search
|
||||
search = {}
|
||||
if moviehash:
|
||||
search['moviehash'] = moviehash
|
||||
if imdbID:
|
||||
search['imdbid'] = imdbID
|
||||
if bytesize:
|
||||
search['moviebytesize'] = str(bytesize)
|
||||
if languages:
|
||||
search['sublanguageid'] = ",".join([self.getLanguage(l) for l in languages])
|
||||
if not imdbID and not moviehash and not bytesize:
|
||||
self.logger.debug(u"No search term, we'll use the filename")
|
||||
guess = guessit.guess_file_info(filepath, 'autodetect')
|
||||
if guess['type'] == 'episode':
|
||||
search['query'] = guess['series']
|
||||
elif guess['type'] == 'movie':
|
||||
search['query'] = guess['title']
|
||||
else: # we don't know what we have
|
||||
return[]
|
||||
# login
|
||||
self.server = xmlrpclib.Server(self.server_url)
|
||||
socket.setdefaulttimeout(self.timeout)
|
||||
try:
|
||||
log_result = self.server.LogIn("", "", "eng", self.user_agent)
|
||||
if not log_result["status"] or log_result["status"] != '200 OK' or not log_result["token"]:
|
||||
raise Exception('OpenSubtitles login failed')
|
||||
token = log_result["token"]
|
||||
except Exception:
|
||||
self.logger.error(u"Cannot login")
|
||||
token = None
|
||||
socket.setdefaulttimeout(None)
|
||||
return []
|
||||
# search
|
||||
sublinks = self.get_results(token, search, filepath)
|
||||
# logout
|
||||
try:
|
||||
self.server.LogOut(token)
|
||||
except:
|
||||
self.logger.error(u"Cannot logout")
|
||||
socket.setdefaulttimeout(None)
|
||||
return sublinks
|
||||
|
||||
def get_results(self, token, search, filepath):
|
||||
self.logger.debug(u"Query uses token %s and search parameters %s" % (token, search))
|
||||
try:
|
||||
results = self.server.SearchSubtitles(token, [search])
|
||||
except Exception, e:
|
||||
self.logger.debug(u"Cannot query the server")
|
||||
return []
|
||||
if not results['data']: # no subtitle found
|
||||
return []
|
||||
sublinks = []
|
||||
self.filename = self.getFileName(filepath)
|
||||
for r in sorted(results['data'], self._cmpSubFileName):
|
||||
result = {}
|
||||
result["release"] = r['SubFileName']
|
||||
result["link"] = r['SubDownloadLink']
|
||||
result["page"] = r['SubDownloadLink']
|
||||
result["lang"] = self.getRevertLanguage(r['SubLanguageID'])
|
||||
result["filename"] = filepath
|
||||
result["plugin"] = self.getClassName()
|
||||
if 'query' in search and not r["MovieReleaseName"].replace('.', ' ').startswith(search['query']): # query mode search, filter results
|
||||
self.logger.debug(u"Skipping %s it does not start with %s" % (r["MovieReleaseName"].replace('.', ' '), search['query']))
|
||||
continue
|
||||
sublinks.append(result)
|
||||
return sublinks
|
||||
|
||||
def _cmpSubFileName(self, x, y):
|
||||
"""Sort based on the SubFileName name tag """
|
||||
#TODO add also support for subtitles release
|
||||
xmatch = x['SubFileName'] and (x['SubFileName'].find(self.filename) > -1 or self.filename.find(x['SubFileName']) > -1)
|
||||
ymatch = y['SubFileName'] and (y['SubFileName'].find(self.filename) > -1 or self.filename.find(y['SubFileName']) > -1)
|
||||
if xmatch and ymatch:
|
||||
if x['SubFileName'] == self.filename or x['SubFileName'].startswith(self.filename):
|
||||
return - 1
|
||||
return 0
|
||||
if not xmatch and not ymatch:
|
||||
return 0
|
||||
if xmatch and not ymatch:
|
||||
return - 1
|
||||
if not xmatch and ymatch:
|
||||
return 1
|
||||
return 0
|
||||
@@ -1,183 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import abc
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import urllib2
|
||||
import struct
|
||||
import threading
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class PluginBase(object):
|
||||
__metaclass__ = abc.ABCMeta
|
||||
multi_languages_queries = False
|
||||
multi_filename_queries = False
|
||||
api_based = True
|
||||
timeout = 3
|
||||
user_agent = 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3)'
|
||||
lock = threading.Lock()
|
||||
|
||||
@abc.abstractmethod
|
||||
def __init__(self, pluginLanguages, config_dict=None, isRevert=False):
|
||||
self.config_dict = config_dict
|
||||
if not pluginLanguages:
|
||||
self.pluginLanguages = None
|
||||
self.revertPluginLanguages = None
|
||||
elif not isRevert:
|
||||
self.pluginLanguages = pluginLanguages
|
||||
self.revertPluginLanguages = dict((v, k) for k, v in self.pluginLanguages.iteritems())
|
||||
else:
|
||||
self.revertPluginLanguages = pluginLanguages
|
||||
self.pluginLanguages = dict((v, k) for k, v in self.revertPluginLanguages.iteritems())
|
||||
self.logger = logging.getLogger('subliminal.%s' % self.getClassName())
|
||||
|
||||
@staticmethod
|
||||
def getFileName(filepath):
|
||||
filename = filepath
|
||||
if ek.ek(os.path.isfile, filename):
|
||||
filename = ek.ek(os.path.basename, filename)
|
||||
if filename.endswith(('.avi', '.wmv', '.mov', '.mp4', '.mpeg', '.mpg', '.mkv')):
|
||||
filename = filename.rsplit('.', 1)[0]
|
||||
return filename
|
||||
|
||||
def hashFile(self, filename):
|
||||
"""Hash a file like OpenSubtitles"""
|
||||
longlongformat = 'q' # long long
|
||||
bytesize = struct.calcsize(longlongformat)
|
||||
f = ek.ek(open, filename, "rb")
|
||||
filesize = ek.ek(os.path.getsize, filename)
|
||||
hash = filesize
|
||||
if filesize < 65536 * 2:
|
||||
self.logger.error(u"File %s is too small (SizeError < 2**16)" % filename)
|
||||
return []
|
||||
for x in range(65536 / bytesize):
|
||||
buffer = f.read(bytesize)
|
||||
(l_value,) = struct.unpack(longlongformat, buffer)
|
||||
hash += l_value
|
||||
hash = hash & 0xFFFFFFFFFFFFFFFF # to remain as 64bit number
|
||||
f.seek(max(0, filesize - 65536), 0)
|
||||
for x in range(65536 / bytesize):
|
||||
buffer = f.read(bytesize)
|
||||
(l_value,) = struct.unpack(longlongformat, buffer)
|
||||
hash += l_value
|
||||
hash = hash & 0xFFFFFFFFFFFFFFFF
|
||||
f.close()
|
||||
returnedhash = "%016x" % hash
|
||||
return returnedhash
|
||||
|
||||
def downloadFile(self, url, filename, data=None):
|
||||
"""Downloads the given url to the given filename"""
|
||||
try:
|
||||
self.logger.info(u"Downloading %s" % url)
|
||||
req = urllib2.Request(url, headers={'Referer': url, 'User-Agent': self.user_agent})
|
||||
f = urllib2.urlopen(req, data=data)
|
||||
dump = ek.ek(open, filename, "wb")
|
||||
dump.write(f.read())
|
||||
dump.close()
|
||||
f.close()
|
||||
self.logger.debug(u"Download finished for file %s. Size: %s" % (filename, ek.ek(os.path.getsize, filename)))
|
||||
except urllib2.HTTPError, e:
|
||||
self.logger.error(u"HTTP Error:", e.code, url)
|
||||
except urllib2.URLError, e:
|
||||
self.logger.error(u"URL Error:", e.reason, url)
|
||||
|
||||
@abc.abstractmethod
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
|
||||
@abc.abstractmethod
|
||||
def download(self, subtitle):
|
||||
"""Main method to call when you want to download a subtitle"""
|
||||
|
||||
def getRevertLanguage(self, language):
|
||||
"""Returns the short (two-character) representation from the long language name"""
|
||||
try:
|
||||
return self.revertPluginLanguages[language]
|
||||
except KeyError, e:
|
||||
self.logger.warn(u"Ooops, you found a missing language in the configuration file of %s: %s. Send a bug report to have it added." % (self.getClassName(), language))
|
||||
|
||||
def checkLanguages(self, languages):
|
||||
if languages and not set(languages).intersection((self._plugin_languages.values())):
|
||||
self.logger.debug(u'None of requested languages %s are available' % languages)
|
||||
return False
|
||||
return True
|
||||
|
||||
def getLanguage(self, language):
|
||||
"""Returns the long naming of the language from a two character code"""
|
||||
try:
|
||||
return self.pluginLanguages[language]
|
||||
except KeyError, e:
|
||||
self.logger.warn(u"Ooops, you found a missing language in the configuration file of %s: %s. Send a bug report to have it added." % (self.getClassName(), language))
|
||||
|
||||
def getExtension(self, subtitle):
|
||||
if self.config_dict and self.config_dict['multi']:
|
||||
return ".%s.srt" % subtitle['lang']
|
||||
return ".srt"
|
||||
|
||||
def getClassName(self):
|
||||
return self.__class__.__name__
|
||||
|
||||
def splitTask(self, task):
|
||||
"""Determines if the plugin can handle multi-thing queries and output splited tasks for list task only"""
|
||||
if task['task'] != 'list':
|
||||
return [task]
|
||||
tasks = [task]
|
||||
if not self.multi_filename_queries:
|
||||
tasks = self._splitOnField(tasks, 'filenames')
|
||||
if not self.multi_languages_queries:
|
||||
tasks = self._splitOnField(tasks, 'languages')
|
||||
return tasks
|
||||
|
||||
@staticmethod
|
||||
def _splitOnField(elements, field):
|
||||
"""
|
||||
Split a list of dict in a bigger one if the element field in the dict has multiple elements too
|
||||
i.e. [{'a': 1, 'b': [2,3]}, {'a': 7, 'b': [4]}] => [{'a': 1, 'b': [2]}, {'a': 1, 'b': [3]}, {'a': 7, 'b': [4]}]
|
||||
with field = 'b'
|
||||
"""
|
||||
results = []
|
||||
for e in elements:
|
||||
for v in e[field]:
|
||||
newElement = {}
|
||||
for (key, value) in e.items():
|
||||
if key != field:
|
||||
newElement[key] = value
|
||||
else:
|
||||
newElement[key] = [v]
|
||||
results.append(newElement)
|
||||
return results
|
||||
|
||||
def listTeams(self, sub_teams, separators):
|
||||
"""List teams of a given string using separators"""
|
||||
for sep in separators:
|
||||
sub_teams = self.splitTeam(sub_teams, sep)
|
||||
return set(sub_teams)
|
||||
|
||||
def splitTeam(self, sub_teams, sep):
|
||||
"""Split teams of a given string using separators"""
|
||||
teams = []
|
||||
for t in sub_teams:
|
||||
teams += t.split(sep)
|
||||
return teams
|
||||
@@ -1,146 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from hashlib import md5, sha256
|
||||
import PluginBase
|
||||
import xmlrpclib
|
||||
import struct
|
||||
import socket
|
||||
import zipfile
|
||||
import os
|
||||
import urllib2
|
||||
import urllib
|
||||
import traceback
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class Podnapisi(PluginBase.PluginBase):
|
||||
site_url = "http://www.podnapisi.net"
|
||||
site_name = "Podnapisi"
|
||||
server_url = 'http://ssp.podnapisi.net:8000'
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = True
|
||||
_plugin_languages = {"sl": "1",
|
||||
"en": "2",
|
||||
"no": "3",
|
||||
"ko": "4",
|
||||
"de": "5",
|
||||
"is": "6",
|
||||
"cs": "7",
|
||||
"fr": "8",
|
||||
"it": "9",
|
||||
"bs": "10",
|
||||
"ja": "11",
|
||||
"ar": "12",
|
||||
"ro": "13",
|
||||
"es-ar": "14",
|
||||
"hu": "15",
|
||||
"el": "16",
|
||||
"zh": "17",
|
||||
"lt": "19",
|
||||
"et": "20",
|
||||
"lv": "21",
|
||||
"he": "22",
|
||||
"nl": "23",
|
||||
"da": "24",
|
||||
"se": "25",
|
||||
"pl": "26",
|
||||
"ru": "27",
|
||||
"es": "28",
|
||||
"sq": "29",
|
||||
"tr": "30",
|
||||
"fi": "31",
|
||||
"pt": "32",
|
||||
"bg": "33",
|
||||
"mk": "35",
|
||||
"sk": "37",
|
||||
"hr": "38",
|
||||
"zh": "40",
|
||||
"hi": "42",
|
||||
"th": "44",
|
||||
"uk": "46",
|
||||
"sr": "47",
|
||||
"pt-br": "48",
|
||||
"ga": "49",
|
||||
"be": "50",
|
||||
"vi": "51",
|
||||
"fa": "52",
|
||||
"ca": "53",
|
||||
"id": "54"}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(Podnapisi, self).__init__(self._plugin_languages, config_dict)
|
||||
# Podnapisi uses two reference for latin serbian and cyrillic serbian (36 and 47)
|
||||
# add the 36 manually as cyrillic seems to be more used
|
||||
self.revertPluginLanguages["36"] = "sr"
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
filepath = filenames[0]
|
||||
if not ek.ek(os.path.isfile, filepath):
|
||||
return []
|
||||
return self.query(self.hashFile(filepath), languages)
|
||||
|
||||
def download(self, subtitle):
|
||||
return []
|
||||
|
||||
def query(self, moviehash, languages=None):
|
||||
"""Makes a query on podnapisi and returns info (link, lang) about found subtitles"""
|
||||
# login
|
||||
self.server = xmlrpclib.Server(self.server_url)
|
||||
socket.setdefaulttimeout(self.timeout)
|
||||
try:
|
||||
log_result = self.server.initiate(self.user_agent)
|
||||
self.logger.debug(u"Result: %s" % log_result)
|
||||
token = log_result["session"]
|
||||
nonce = log_result["nonce"]
|
||||
except Exception, e:
|
||||
self.logger.error(u"Cannot login" % log_result)
|
||||
socket.setdefaulttimeout(None)
|
||||
return []
|
||||
username = 'getmesubs'
|
||||
password = '99D31$$'
|
||||
hash = md5()
|
||||
hash.update(password)
|
||||
password = hash.hexdigest()
|
||||
hash = sha256()
|
||||
hash.update(password)
|
||||
hash.update(nonce)
|
||||
password = hash.hexdigest()
|
||||
self.server.authenticate(token, username, password)
|
||||
self.logger.debug(u'Authenticated')
|
||||
#if languages:
|
||||
# self.logger.debug([self.getLanguage(l) for l in languages])
|
||||
# self.server.setFilters(token, [self.getLanguage(l) for l in languages])
|
||||
# self.logger.debug('Filers set for languages %s' % languages)
|
||||
self.logger.debug(u"Starting search with token %s and hashs %s" % (token, [moviehash]))
|
||||
results = self.server.search(token, [moviehash])
|
||||
return results
|
||||
subs = []
|
||||
for sub in results['results']:
|
||||
subs.append(sub)
|
||||
d = self.server.download(token, [173793])
|
||||
self.server.terminate(token)
|
||||
return subs
|
||||
@@ -1,176 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from BeautifulSoup import BeautifulSoup
|
||||
import PluginBase
|
||||
import zipfile
|
||||
import os
|
||||
import urllib2
|
||||
import urllib
|
||||
import traceback
|
||||
import httplib
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class SubScene(PluginBase.PluginBase):
|
||||
site_url = 'http://subscene.com'
|
||||
site_name = 'SubScene'
|
||||
server_url = 'http://subscene.com/s.aspx?subtitle='
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = False
|
||||
_plugin_languages = {"en": "English",
|
||||
"se": "Swedish",
|
||||
"da": "Danish",
|
||||
"fi": "Finnish",
|
||||
"no": "Norwegian",
|
||||
"fr": "French",
|
||||
"es": "Spanish",
|
||||
"is": "Icelandic",
|
||||
"cs": "Czech",
|
||||
"bg": "Bulgarian",
|
||||
"de": "German",
|
||||
"ar": "Arabic",
|
||||
"el": "Greek",
|
||||
"fa": "Farsi/Persian",
|
||||
"nl": "Dutch",
|
||||
"he": "Hebrew",
|
||||
"id": "Indonesian",
|
||||
"ja": "Japanese",
|
||||
"vi": "Vietnamese",
|
||||
"pt": "Portuguese",
|
||||
"ro": "Romanian",
|
||||
"tr": "Turkish",
|
||||
"sr": "Serbian",
|
||||
"pt-br": "Brazillian Portuguese",
|
||||
"ru": "Russian",
|
||||
"hr": "Croatian",
|
||||
"sl": "Slovenian",
|
||||
"zh": "Chinese BG code",
|
||||
"it": "Italian",
|
||||
"pl": "Polish",
|
||||
"ko": "Korean",
|
||||
"hu": "Hungarian",
|
||||
"ku": "Kurdish",
|
||||
"et": "Estonian"}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(SubScene, self).__init__(self._plugin_languages, config_dict)
|
||||
#http://subscene.com/s.aspx?subtitle=Dexter.S04E01.HDTV.XviD-NoTV
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
filepath = filenames[0]
|
||||
fname = self.getFileName(filepath)
|
||||
subs = self.query(fname, filepath, languages)
|
||||
if not subs and fname.rfind(".[") > 0:
|
||||
# Try to remove the [VTV] or [EZTV] at the end of the file
|
||||
teamless_filename = fname[0:fname.rfind(".[")]
|
||||
subs = self.query(teamless_filename, filepath, languages)
|
||||
return subs
|
||||
else:
|
||||
return subs
|
||||
|
||||
def download(self, subtitle):
|
||||
"""Main method to call when you want to download a subtitle"""
|
||||
subpage = subtitle["page"]
|
||||
page = urllib2.urlopen(subpage)
|
||||
soup = BeautifulSoup(page)
|
||||
dlhref = soup.find("div", {"class": "download"}).find("a")["href"]
|
||||
subtitle["link"] = self.site_url + dlhref.split('"')[7]
|
||||
format = "zip"
|
||||
archivefilename = subtitle["filename"].rsplit(".", 1)[0] + '.' + format
|
||||
self.downloadFile(subtitle["link"], archivefilename)
|
||||
subtitlefilename = None
|
||||
if zipfile.is_zipfile(archivefilename):
|
||||
self.logger.debug(u"Unzipping file " + archivefilename)
|
||||
zf = zipfile.ZipFile(archivefilename, "r")
|
||||
for el in zf.infolist():
|
||||
extension = el.orig_filename.rsplit(".", 1)[1]
|
||||
if extension in ("srt", "sub", "txt"):
|
||||
subtitlefilename = srtbasefilename + "." + extension
|
||||
outfile = ek.ek(open, subtitlefilename, "wb")
|
||||
outfile.write(zf.read(el.orig_filename))
|
||||
outfile.flush()
|
||||
outfile.close()
|
||||
else:
|
||||
self.logger.info(u"File %s does not seem to be valid " % el.orig_filename)
|
||||
# Deleting the zip file
|
||||
zf.close()
|
||||
ek.ek(os.remove, archivefilename)
|
||||
return subtitlefilename
|
||||
elif archivefilename.endswith('.rar'):
|
||||
self.logger.warn(u'Rar is not really supported yet. Trying to call unrar')
|
||||
import subprocess
|
||||
try:
|
||||
args = ['unrar', 'lb', archivefilename]
|
||||
output = subprocess.Popen(args, stdout=subprocess.PIPE).communicate()[0]
|
||||
for el in output.splitlines():
|
||||
extension = el.rsplit(".", 1)[1]
|
||||
if extension in ("srt", "sub"):
|
||||
args = ['unrar', 'e', archivefilename, el, ek.ek(os.path.dirname, archivefilename)]
|
||||
subprocess.Popen(args)
|
||||
tmpsubtitlefilename = ek.ek(os.path.join, ek.ek(os.path.dirname, archivefilename), el)
|
||||
subtitlefilename = ek.ek(os.path.join, ek.ek(os.path.dirname, archivefilename), srtbasefilename + "." + extension)
|
||||
if ek.ek(os.path.exists, tmpsubtitlefilename):
|
||||
# rename it to match the file
|
||||
ek.ek(os.rename, tmpsubtitlefilename, subtitlefilename)
|
||||
# exit
|
||||
return subtitlefilename
|
||||
except OSError, e:
|
||||
self.logger.error(u"Execution failed: %s" % e)
|
||||
return None
|
||||
else:
|
||||
self.logger.info(u"Unexpected file type (not zip) for %s" % archivefilename)
|
||||
return None
|
||||
|
||||
def downloadFile(self, url, filename):
|
||||
"""Downloads the given url to the given filename"""
|
||||
#FIXME: Not working
|
||||
super(SubScene, self).downloadFile(url, filename, urllib.urlencode({'__EVENTTARGET': 's$lc$bcr$downloadLink', '__EVENTARGUMENT': '', '__VIEWSTATE': '/wEPDwUHNzUxOTkwNWRk4wau5efPqhlBJJlOkKKHN8FIS04='}))
|
||||
|
||||
def query(self, token, filepath, langs=None):
|
||||
"""Make a query on SubScene and returns info about found subtitles"""
|
||||
sublinks = []
|
||||
searchurl = "%s%s" % (self.server_url, urllib.quote(token))
|
||||
self.logger.debug(u"Query: %s" % searchurl)
|
||||
page = urllib2.urlopen(searchurl)
|
||||
soup = BeautifulSoup(page.read())
|
||||
for subs in soup("a", {"class": "a1"}):
|
||||
lang_span = subs.find("span")
|
||||
lang = self.getRevertLanguage(lang_span.contents[0].strip())
|
||||
release_span = lang_span.findNext("span")
|
||||
release = release_span.contents[0].strip().split(" (")[0]
|
||||
sub_page = subs["href"]
|
||||
#http://subscene.com//s-dlpath-260016/78348/rar.zipx
|
||||
if release.lower().startswith(token.lower()) and (not langs or lang in langs):
|
||||
result = {}
|
||||
result["release"] = release
|
||||
result["lang"] = lang
|
||||
result["link"] = None
|
||||
result["page"] = self.site_url + sub_page
|
||||
result["filename"] = filepath
|
||||
result["plugin"] = self.getClassName()
|
||||
sublinks.append(result)
|
||||
return sublinks
|
||||
@@ -1,156 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from BeautifulSoup import BeautifulSoup
|
||||
import PluginBase
|
||||
import zipfile
|
||||
import urllib2
|
||||
import urllib
|
||||
import logging
|
||||
import traceback
|
||||
import httplib
|
||||
import re
|
||||
import guessit
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class SubsWiki(PluginBase.PluginBase):
|
||||
site_url = 'http://www.subswiki.com'
|
||||
site_name = 'SubsWiki'
|
||||
server_url = 'http://www.subswiki.com'
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = False
|
||||
_plugin_languages = {u"English (US)": "en",
|
||||
u"English (UK)": "en",
|
||||
u"English": "en",
|
||||
u"French": "fr",
|
||||
u"Brazilian": "pt-br",
|
||||
u"Portuguese": "pt",
|
||||
u"Español (Latinoamérica)": "es",
|
||||
u"Español (España)": "es",
|
||||
u"Español": "es",
|
||||
u"Italian": "it",
|
||||
u"Català": "ca"}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(SubsWiki, self).__init__(self._plugin_languages, config_dict, True)
|
||||
self.release_pattern = re.compile("\nVersion (.+), ([0-9]+).([0-9])+ MBs")
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
filepath = filenames[0]
|
||||
if not self.checkLanguages(languages):
|
||||
return []
|
||||
guess = guessit.guess_file_info(filepath, 'autodetect')
|
||||
if guess['type'] != 'episode':
|
||||
return []
|
||||
# add multiple things to the release group set
|
||||
release_group = set()
|
||||
if 'releaseGroup' in guess:
|
||||
release_group.add(guess['releaseGroup'])
|
||||
else:
|
||||
if 'title' in guess:
|
||||
release_group.add(guess['title'])
|
||||
if 'screenSize' in guess:
|
||||
release_group.add(guess['screenSize'])
|
||||
if len(release_group) == 0:
|
||||
return []
|
||||
self.release_group = release_group # used to sort results
|
||||
return self.query(guess['series'], guess['season'], guess['episodeNumber'], release_group, filepath, languages)
|
||||
|
||||
def query(self, name, season, episode, release_group, filepath, languages=None):
|
||||
"""Make a query and returns info about found subtitles"""
|
||||
sublinks = []
|
||||
searchname = name.lower().replace(" ", "_")
|
||||
searchurl = "%s/serie/%s/%s/%s/" % (self.server_url, searchname, season, episode)
|
||||
self.logger.debug(u"Searching in %s" % searchurl)
|
||||
try:
|
||||
req = urllib2.Request(searchurl, headers={'User-Agent': self.user_agent})
|
||||
page = urllib2.urlopen(req, timeout=self.timeout)
|
||||
except urllib2.HTTPError as inst:
|
||||
self.logger.info(u"Error: %s - %s" % (searchurl, inst))
|
||||
return []
|
||||
except urllib2.URLError as inst:
|
||||
self.logger.info(u"TimeOut: %s" % inst)
|
||||
return []
|
||||
soup = BeautifulSoup(page.read())
|
||||
for subs in soup("td", {"class": "NewsTitle"}):
|
||||
sub_teams = self.listTeams([self.release_pattern.search("%s" % subs.contents[1]).group(1)], [".", "_", " ", "/", "-"])
|
||||
if not release_group.intersection(sub_teams): # On wrong team
|
||||
continue
|
||||
self.logger.debug(u"Team from website: %s" % sub_teams)
|
||||
self.logger.debug(u"Team from file: %s" % release_group)
|
||||
for html_language in subs.parent.parent.findAll("td", {"class": "language"}):
|
||||
sub_language = self.getRevertLanguage(html_language.string.strip())
|
||||
self.logger.debug(u"Subtitle reverted language: %s" % sub_language)
|
||||
if languages and not sub_language in languages: # On wrong language
|
||||
continue
|
||||
html_status = html_language.findNextSibling('td')
|
||||
sub_status = html_status.find('strong').string.strip()
|
||||
if not sub_status == 'Completed': # On not completed subtitles
|
||||
continue
|
||||
sub_link = html_status.findNext("td").find("a")["href"]
|
||||
result = {}
|
||||
result["release"] = "%s.S%.2dE%.2d.%s" % (name.replace(" ", "."), int(season), int(episode), '.'.join(sub_teams))
|
||||
result["lang"] = sub_language
|
||||
result["link"] = self.server_url + sub_link
|
||||
result["page"] = searchurl
|
||||
result["filename"] = filepath
|
||||
result["plugin"] = self.getClassName()
|
||||
result["teams"] = sub_teams # used to sort
|
||||
sublinks.append(result)
|
||||
sublinks.sort(self._cmpTeams)
|
||||
return sublinks
|
||||
|
||||
def download(self, subtitle):
|
||||
"""Main method to call when you want to download a subtitle"""
|
||||
subtitleFilename = subtitle["filename"].rsplit(".", 1)[0] + self.getExtension(subtitle)
|
||||
self.downloadFile(subtitle["link"], subtitleFilename)
|
||||
return subtitleFilename
|
||||
|
||||
def listTeams(self, subteams, separators):
|
||||
teams = []
|
||||
for sep in separators:
|
||||
subteams = self.splitTeam(subteams, sep)
|
||||
return set(subteams)
|
||||
|
||||
def splitTeam(self, subteams, sep):
|
||||
teams = []
|
||||
for t in subteams:
|
||||
teams += t.split(sep)
|
||||
return teams
|
||||
|
||||
def downloadFile(self, url, filename):
|
||||
"""Downloads the given url to the given filename"""
|
||||
req = urllib2.Request(url, headers={'Referer': url, 'User-Agent': 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3)'})
|
||||
f = urllib2.urlopen(req)
|
||||
dump = ek.ek(open, filename, "wb")
|
||||
dump.write(f.read())
|
||||
dump.close()
|
||||
f.close()
|
||||
|
||||
def _cmpTeams(self, x, y):
|
||||
"""Sort based on teams matching"""
|
||||
return -cmp(len(x['teams'].intersection(self.release_group)), len(y['teams'].intersection(self.release_group)))
|
||||
@@ -1,122 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import ConfigParser
|
||||
import PluginBase
|
||||
import traceback
|
||||
import urllib
|
||||
import urllib2
|
||||
import xml.dom.minidom
|
||||
|
||||
|
||||
class SubtitleSource(PluginBase.PluginBase):
|
||||
site_url = 'http://www.subtitlesource.org'
|
||||
site_name = 'SubtitleSource'
|
||||
server_url = 'http://www.subtitlesource.org/api/%s/3.0/xmlsearch'
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = True
|
||||
_plugin_languages = {"en": "English",
|
||||
"sv": "Swedish",
|
||||
"da": "Danish",
|
||||
"fi": "Finnish",
|
||||
"no": "Norwegian",
|
||||
"fr": "French",
|
||||
"es": "Spanish",
|
||||
"is": "Icelandic"}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(SubtitleSource, self).__init__(self._plugin_languages, config_dict)
|
||||
if config_dict and "subtitlesource_key" in config_dict:
|
||||
self.server_url = self.server_url % config_dict["subtitlesource_key"]
|
||||
else:
|
||||
self.logger.error(u'SubtitleSource API Key is mandatory for this plugin')
|
||||
raise Exception('SubtitleSource API Key is mandatory for this plugin')
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
filepath = filenames[0]
|
||||
fname = self.getFileName(filepath)
|
||||
subs = self.query(fname, languages)
|
||||
if not subs and fname.rfind(".[") > 0:
|
||||
# Try to remove the [VTV] or [EZTV] at the end of the file
|
||||
teamless_filename = fname[0:fname.rfind(".[")]
|
||||
subs = self.query(teamless_filename, languages)
|
||||
return subs
|
||||
else:
|
||||
return subs
|
||||
|
||||
def query(self, token, languages=None):
|
||||
"""Makes a query on SubtitlesSource and returns info (link, lang) about found subtitles"""
|
||||
self.logger.debug(u"Local file is: %s " % token)
|
||||
sublinks = []
|
||||
if not languages: # langs is empty of None
|
||||
languages = ["all"]
|
||||
else: # parse each lang to generate the equivalent lang
|
||||
languages = [self._plugin_languages[l] for l in languages if l in self._plugin_languages.keys()]
|
||||
# Get the CD part of this
|
||||
metaData = self.guessFileData(token)
|
||||
multipart = metaData.get('part', None)
|
||||
part = metaData.get('part')
|
||||
if not part: # part will return None if not found using the regex
|
||||
part = 1
|
||||
for lang in languages:
|
||||
searchurl = "%s/%s/%s/0" % (self.server_url, urllib.quote(token), lang)
|
||||
self.logger.debug(u"dl'ing %s" % searchurl)
|
||||
page = urllib2.urlopen(searchurl, timeout=self.timeout)
|
||||
xmltree = xml.dom.minidom.parse(page)
|
||||
subs = xmltree.getElementsByTagName("sub")
|
||||
for sub in subs:
|
||||
sublang = self.getRevertLanguage(self.getValue(sub, "language"))
|
||||
if languages and not sublang in languages:
|
||||
continue # The language of this sub is not wanted => Skip
|
||||
if multipart and not int(self.getValue(sub, 'cd')) > 1:
|
||||
continue # The subtitle is not a multipart
|
||||
dllink = "http://www.subtitlesource.org/download/text/%s/%s" % (self.getValue(sub, "id"), part)
|
||||
self.logger.debug(u"Link added: %s (%s)" % (dllink, sublang))
|
||||
result = {}
|
||||
result["release"] = self.getValue(sub, "releasename")
|
||||
result["link"] = dllink
|
||||
result["page"] = dllink
|
||||
result["lang"] = sublang
|
||||
releaseMetaData = self.guessFileData(result['release'])
|
||||
teams = set(metaData['teams'])
|
||||
srtTeams = set(releaseMetaData['teams'])
|
||||
self.logger.debug(u"Analyzing: %s " % result['release'])
|
||||
self.logger.debug(u"Local file has: %s " % metaData['teams'])
|
||||
self.logger.debug(u"Remote sub has: %s " % releaseMetaData['teams'])
|
||||
if result['release'].startswith(token) or (releaseMetaData['name'] == metaData['name'] and releaseMetaData['type'] == metaData['type'] and (teams.issubset(srtTeams) or srtTeams.issubset(teams))):
|
||||
sublinks.append(result)
|
||||
return sublinks
|
||||
|
||||
def download(self, subtitle):
|
||||
"""Main method to call when you want to download a subtitle"""
|
||||
suburl = subtitle["link"]
|
||||
videofilename = subtitle["filename"]
|
||||
srtfilename = videofilename.rsplit(".", 1)[0] + self.getExtension(subtitle)
|
||||
self.downloadFile(suburl, srtfilename)
|
||||
return srtfilename
|
||||
|
||||
def getValue(self, sub, tagName):
|
||||
for node in sub.childNodes:
|
||||
if node.nodeType == node.ELEMENT_NODE and node.tagName == tagName:
|
||||
return node.childNodes[0].nodeValue
|
||||
@@ -1,150 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from BeautifulSoup import BeautifulSoup
|
||||
import guessit
|
||||
import zipfile
|
||||
import urllib2
|
||||
import urllib
|
||||
import logging
|
||||
import traceback
|
||||
import httplib
|
||||
import re
|
||||
import PluginBase
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class Subtitulos(PluginBase.PluginBase):
|
||||
site_url = 'http://www.subtitulos.es'
|
||||
site_name = 'Subtitulos'
|
||||
server_url = 'http://www.subtitulos.es'
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = False
|
||||
_plugin_languages = {u"English (US)": "en",
|
||||
u"English (UK)": "en",
|
||||
u"English": "en",
|
||||
u"French": "fr",
|
||||
u"Brazilian": "pt-br",
|
||||
u"Portuguese": "pt",
|
||||
u"Español (Latinoamérica)": "es",
|
||||
u"Español (España)": "es",
|
||||
u"Español": "es",
|
||||
u"Italian": "it",
|
||||
u"Català": "ca"}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(Subtitulos, self).__init__(self._plugin_languages, config_dict, True)
|
||||
self.release_pattern = re.compile("Versión (.+) ([0-9]+).([0-9])+ megabytes")
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
if not self.checkLanguages(languages):
|
||||
return []
|
||||
filepath = filenames[0]
|
||||
guess = guessit.guess_file_info(filepath, 'autodetect')
|
||||
if guess['type'] != 'episode':
|
||||
return []
|
||||
# add multiple things to the release group set
|
||||
release_group = set()
|
||||
if 'releaseGroup' in guess:
|
||||
release_group.add(guess['releaseGroup'].lower())
|
||||
else:
|
||||
if 'title' in guess:
|
||||
release_group.add(guess['title'].lower())
|
||||
if 'screenSize' in guess:
|
||||
release_group.add(guess['screenSize'].lower())
|
||||
if len(release_group) == 0:
|
||||
return []
|
||||
self.release_group = release_group # used to sort results
|
||||
return self.query(guess['series'], guess['season'], guess['episodeNumber'], release_group, filepath, languages)
|
||||
|
||||
def query(self, name, season, episode, release_group, filepath, languages=None):
|
||||
"""Make a query and returns info about found subtitles"""
|
||||
sublinks = []
|
||||
searchname = name.lower().replace(" ", "-")
|
||||
searchurl = "%s/%s/%sx%.2d" % (self.server_url, searchname, season, episode)
|
||||
self.logger.debug(u"Searching in %s" % searchurl)
|
||||
try:
|
||||
req = urllib2.Request(searchurl, headers={'User-Agent': self.user_agent})
|
||||
page = urllib2.urlopen(req, timeout=self.timeout)
|
||||
except urllib2.HTTPError as inst:
|
||||
self.logger.info(u"Error: %s - %s" % (searchurl, inst))
|
||||
return []
|
||||
except urllib2.URLError as inst:
|
||||
self.logger.info(u"TimeOut: %s" % inst)
|
||||
return []
|
||||
soup = BeautifulSoup(page.read())
|
||||
for subs in soup("div", {"id": "version"}):
|
||||
version = subs.find("p", {"class": "title-sub"})
|
||||
sub_teams = self.listTeams([self.release_pattern.search("%s" % version.contents[1]).group(1).lower()], [".", "_", " ", "/"])
|
||||
if not release_group.intersection(sub_teams): # On wrong team
|
||||
continue
|
||||
self.logger.debug(u"Team from website: %s" % sub_teams)
|
||||
self.logger.debug(u"Team from file: %s" % release_group)
|
||||
for html_language in subs.findAllNext("ul", {"class": "sslist"}):
|
||||
sub_language = self.getRevertLanguage(html_language.findNext("li", {"class": "li-idioma"}).find("strong").contents[0].string.strip())
|
||||
if languages and not sub_language in languages: # On wrong language
|
||||
continue
|
||||
html_status = html_language.findNext("li", {"class": "li-estado green"})
|
||||
sub_status = html_status.contents[0].string.strip()
|
||||
if not sub_status == 'Completado': # On not completed subtitles
|
||||
continue
|
||||
sub_link = html_status.findNext("span", {"class": "descargar green"}).find("a")["href"]
|
||||
result = {}
|
||||
result["release"] = "%s.S%.2dE%.2d.%s" % (name.replace(" ", "."), int(season), int(episode), '.'.join(sub_teams))
|
||||
result["lang"] = sub_language
|
||||
result["link"] = sub_link
|
||||
result["page"] = searchurl
|
||||
result["filename"] = filepath
|
||||
result["plugin"] = self.getClassName()
|
||||
result["teams"] = sub_teams # used to sort
|
||||
sublinks.append(result)
|
||||
sublinks.sort(self._cmpTeams)
|
||||
return sublinks
|
||||
|
||||
def download(self, subtitle):
|
||||
"""
|
||||
Pass the URL of the sub and the file it matches, will unzip it
|
||||
and return the path to the created file
|
||||
"""
|
||||
suburl = subtitle["link"]
|
||||
videofilename = subtitle["filename"]
|
||||
srtbasefilename = videofilename.rsplit(".", 1)[0]
|
||||
srtfilename = srtbasefilename + ".srt"
|
||||
self.downloadFile(suburl, srtfilename)
|
||||
return srtfilename
|
||||
|
||||
def downloadFile(self, url, filename):
|
||||
"""Downloads the given url to the given filename"""
|
||||
req = urllib2.Request(url, headers={'Referer': url, 'User-Agent': 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3)'})
|
||||
f = urllib2.urlopen(req)
|
||||
dump = ek.ek(open, filename, "wb")
|
||||
dump.write(f.read())
|
||||
dump.close()
|
||||
f.close()
|
||||
|
||||
def _cmpTeams(self, x, y):
|
||||
"""Sort based on teams matching"""
|
||||
return -cmp(len(x['teams'].intersection(self.release_group)), len(y['teams'].intersection(self.release_group)))
|
||||
@@ -1,125 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import PluginBase
|
||||
import hashlib
|
||||
import os
|
||||
import urllib2
|
||||
from subliminal import encodingKludge as ek
|
||||
|
||||
|
||||
class TheSubDB(PluginBase.PluginBase):
|
||||
site_url = 'http://thesubdb.com'
|
||||
site_name = 'SubDB'
|
||||
server_url = 'http://api.thesubdb.com' # for testing purpose, use http://sandbox.thesubdb.com instead
|
||||
multi_languages_queries = True
|
||||
multi_filename_queries = False
|
||||
api_based = True
|
||||
user_agent = 'SubDB/1.0 (Subliminal/0.1; https://github.com/Diaoul/subliminal)' # defined by the API
|
||||
_plugin_languages = {'cs': 'cs', # the whole list is available with the API: http://sandbox.thesubdb.com/?action=languages
|
||||
'da': 'da',
|
||||
'de': 'de',
|
||||
'en': 'en',
|
||||
'fi': 'fi',
|
||||
'fr': 'fr',
|
||||
'hu': 'hu',
|
||||
'id': 'id',
|
||||
'it': 'it',
|
||||
'nl': 'nl',
|
||||
'no': 'no',
|
||||
'pl': 'pl',
|
||||
'pt': 'pt',
|
||||
'ro': 'ro',
|
||||
'ru': 'ru',
|
||||
'sl': 'sl',
|
||||
'sr': 'sr',
|
||||
'sv': 'sv',
|
||||
'tr': 'tr'}
|
||||
|
||||
def __init__(self, config_dict=None):
|
||||
super(TheSubDB, self).__init__(self._plugin_languages, config_dict)
|
||||
|
||||
def list(self, filenames, languages):
|
||||
"""Main method to call when you want to list subtitles"""
|
||||
# as self.multi_filename_queries is false, we won't have multiple filenames in the list so pick the only one
|
||||
# once multi-filename queries are implemented, set multi_filename_queries to true and manage a list of multiple filenames here
|
||||
filepath = filenames[0]
|
||||
if not ek.ek(os.path.isfile, filepath):
|
||||
return []
|
||||
return self.query(filepath, self.hashFile(filepath), languages)
|
||||
|
||||
def query(self, filepath, moviehash, languages=None):
|
||||
searchurl = "%s/?action=%s&hash=%s" % (self.server_url, "search", moviehash)
|
||||
self.logger.debug(u'Query URL: %s' % searchurl)
|
||||
try:
|
||||
req = urllib2.Request(searchurl, headers={'User-Agent': self.user_agent})
|
||||
page = urllib2.urlopen(req, timeout=self.timeout)
|
||||
except urllib2.HTTPError as inst:
|
||||
if inst.code == 404: # no result found
|
||||
return []
|
||||
self.logger.error(u"Error: %s - %s" % (searchurl, inst))
|
||||
return []
|
||||
except urllib2.URLError as inst:
|
||||
self.logger.error(u"TimeOut: %s" % inst)
|
||||
return []
|
||||
available_languages = page.readlines()[0].split(',')
|
||||
self.logger.debug(u'Available languages: %s' % available_languages)
|
||||
subs = []
|
||||
for l in available_languages:
|
||||
if not languages or l in languages:
|
||||
result = {}
|
||||
result['release'] = filepath
|
||||
result['lang'] = l
|
||||
result['link'] = "%s/?action=download&hash=%s&language=%s" % (self.server_url, moviehash, l)
|
||||
result['page'] = result['link']
|
||||
result['filename'] = filepath
|
||||
result['plugin'] = self.getClassName()
|
||||
subs.append(result)
|
||||
return subs
|
||||
|
||||
def hashFile(self, name):
|
||||
"""This hash function receives the filename and returns the hash code"""
|
||||
readsize = 64 * 1024
|
||||
with ek.ek(open, name, 'rb') as f:
|
||||
size = ek.ek(os.path.getsize, name)
|
||||
data = f.read(readsize)
|
||||
f.seek(-readsize, os.SEEK_END)
|
||||
data += f.read(readsize)
|
||||
return hashlib.md5(data).hexdigest()
|
||||
|
||||
def download(self, subtitle):
|
||||
"""Main method to call when you want to download a subtitle"""
|
||||
suburl = subtitle["link"]
|
||||
videofilename = subtitle["filename"]
|
||||
srtfilename = videofilename.rsplit(".", 1)[0] + self.getExtension(subtitle)
|
||||
self.downloadFile(suburl, srtfilename)
|
||||
return srtfilename
|
||||
|
||||
def downloadFile(self, url, srtfilename):
|
||||
"""Downloads the given url to the given filename"""
|
||||
req = urllib2.Request(url)
|
||||
req.add_header('User-Agent', self.user_agent)
|
||||
f = urllib2.urlopen(req)
|
||||
dump = open(srtfilename, "wb")
|
||||
dump.write(f.read())
|
||||
dump.close()
|
||||
f.close()
|
||||
@@ -1,31 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from Addic7ed import Addic7ed
|
||||
from BierDopje import BierDopje
|
||||
from OpenSubtitles import OpenSubtitles
|
||||
#from Podnapisi import Podnapisi
|
||||
#from SubScene import SubScene
|
||||
from SubsWiki import SubsWiki
|
||||
#from SubtitleSource import SubtitleSource
|
||||
from Subtitulos import Subtitulos
|
||||
from TheSubDB import TheSubDB
|
||||
@@ -0,0 +1,173 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
|
||||
from bs4 import BeautifulSoup, FeatureNotFound
|
||||
from six.moves.xmlrpc_client import SafeTransport
|
||||
|
||||
from ..video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_version(version):
|
||||
"""Put the `version` in the major.minor form.
|
||||
|
||||
:param str version: the full version.
|
||||
:return: the major.minor form of the `version`.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
return '.'.join(version.split('.')[:2])
|
||||
|
||||
|
||||
class TimeoutSafeTransport(SafeTransport):
|
||||
"""Timeout support for ``xmlrpc.client.SafeTransport``."""
|
||||
def __init__(self, timeout, *args, **kwargs):
|
||||
SafeTransport.__init__(self, *args, **kwargs)
|
||||
self.timeout = timeout
|
||||
|
||||
def make_connection(self, host):
|
||||
c = SafeTransport.make_connection(self, host)
|
||||
c.timeout = self.timeout
|
||||
|
||||
return c
|
||||
|
||||
|
||||
class ParserBeautifulSoup(BeautifulSoup):
|
||||
"""A ``bs4.BeautifulSoup`` that picks the first parser available in `parsers`.
|
||||
|
||||
:param markup: markup for the ``bs4.BeautifulSoup``.
|
||||
:param list parsers: parser names, in order of preference
|
||||
|
||||
"""
|
||||
def __init__(self, markup, parsers, **kwargs):
|
||||
# reject features
|
||||
if set(parsers).intersection({'fast', 'permissive', 'strict', 'xml', 'html', 'html5'}):
|
||||
raise ValueError('Features not allowed, only parser names')
|
||||
|
||||
# reject some kwargs
|
||||
if 'features' in kwargs:
|
||||
raise ValueError('Cannot use features kwarg')
|
||||
if 'builder' in kwargs:
|
||||
raise ValueError('Cannot use builder kwarg')
|
||||
|
||||
# pick the first parser available
|
||||
for parser in parsers:
|
||||
try:
|
||||
super(ParserBeautifulSoup, self).__init__(markup, parser, **kwargs)
|
||||
return
|
||||
except FeatureNotFound:
|
||||
pass
|
||||
|
||||
raise FeatureNotFound
|
||||
|
||||
|
||||
class Provider(object):
|
||||
"""Base class for providers.
|
||||
|
||||
If any configuration is possible for the provider, like credentials, it must take place during instantiation.
|
||||
|
||||
:raise: :class:`~subliminal.exceptions.ConfigurationError` if there is a configuration error
|
||||
|
||||
"""
|
||||
#: Supported set of :class:`~babelfish.language.Language`
|
||||
languages = set()
|
||||
|
||||
#: Supported video types
|
||||
video_types = (Episode, Movie)
|
||||
|
||||
#: Required hash, if any
|
||||
required_hash = None
|
||||
|
||||
def __enter__(self):
|
||||
self.initialize()
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
self.terminate()
|
||||
|
||||
def initialize(self):
|
||||
"""Initialize the provider.
|
||||
|
||||
Must be called when starting to work with the provider. This is the place for network initialization
|
||||
or login operations.
|
||||
|
||||
.. note::
|
||||
This is called automatically when entering the :keyword:`with` statement
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def terminate(self):
|
||||
"""Terminate the provider.
|
||||
|
||||
Must be called when done with the provider. This is the place for network shutdown or logout operations.
|
||||
|
||||
.. note::
|
||||
This is called automatically when exiting the :keyword:`with` statement
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
@classmethod
|
||||
def check(cls, video):
|
||||
"""Check if the `video` can be processed.
|
||||
|
||||
The `video` is considered invalid if not an instance of :attr:`video_types` or if the :attr:`required_hash` is
|
||||
not present in :attr:`~subliminal.video.Video.hashes` attribute of the `video`.
|
||||
|
||||
:param video: the video to check.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:return: `True` if the `video` is valid, `False` otherwise.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
if not isinstance(video, cls.video_types):
|
||||
return False
|
||||
if cls.required_hash is not None and cls.required_hash not in video.hashes:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def query(self, *args, **kwargs):
|
||||
"""Query the provider for subtitles.
|
||||
|
||||
Arguments should match as much as possible the actual parameters for querying the provider
|
||||
|
||||
:return: found subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError`
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
"""List subtitles for the `video` with the given `languages`.
|
||||
|
||||
This will call the :meth:`query` method internally. The parameters passed to the :meth:`query` method may
|
||||
vary depending on the amount of information available in the `video`.
|
||||
|
||||
:param video: video to list subtitles for.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: languages to search for.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:return: found subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError`
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
"""Download `subtitle`'s :attr:`~subliminal.subtitle.Subtitle.content`.
|
||||
|
||||
:param subtitle: subtitle to download.
|
||||
:type subtitle: :class:`~subliminal.subtitle.Subtitle`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError`
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s [%r]>' % (self.__class__.__name__, self.video_types)
|
||||
@@ -0,0 +1,271 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
import re
|
||||
|
||||
from babelfish import Language
|
||||
from requests import Session
|
||||
|
||||
from . import ParserBeautifulSoup, Provider, get_version
|
||||
from .. import __version__
|
||||
from ..cache import SHOW_EXPIRATION_TIME, region
|
||||
from ..exceptions import AuthenticationError, ConfigurationError, DownloadLimitExceeded
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches, guess_properties
|
||||
from ..video import Episode
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
series_year_re = re.compile('^(?P<series>[ \w]+)(?: \((?P<year>\d{4})\))?$')
|
||||
|
||||
|
||||
class Addic7edSubtitle(Subtitle):
|
||||
provider_name = 'addic7ed'
|
||||
|
||||
def __init__(self, language, hearing_impaired, page_link, series, season, episode, title, year, version,
|
||||
download_link):
|
||||
super(Addic7edSubtitle, self).__init__(language, hearing_impaired, page_link)
|
||||
self.series = series
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.title = title
|
||||
self.year = year
|
||||
self.version = version
|
||||
self.download_link = download_link
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.download_link
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(Addic7edSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# series
|
||||
if video.series and self.series.lower() == video.series.lower():
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
# title
|
||||
if video.title and self.title.lower() == video.title.lower():
|
||||
matches.add('title')
|
||||
# year
|
||||
if video.year == self.year:
|
||||
matches.add('year')
|
||||
# release_group
|
||||
if video.release_group and self.version and video.release_group.lower() in self.version.lower():
|
||||
matches.add('release_group')
|
||||
# resolution
|
||||
if video.resolution and self.version and video.resolution in self.version.lower():
|
||||
matches.add('resolution')
|
||||
# format
|
||||
if video.format and self.version and video.format.lower() in self.version.lower():
|
||||
matches.add('format')
|
||||
# other properties
|
||||
matches |= guess_matches(video, guess_properties(self.version), partial=True)
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class Addic7edProvider(Provider):
|
||||
languages = {Language('por', 'BR')} | {Language(l) for l in [
|
||||
'ara', 'aze', 'ben', 'bos', 'bul', 'cat', 'ces', 'dan', 'deu', 'ell', 'eng', 'eus', 'fas', 'fin', 'fra', 'glg',
|
||||
'heb', 'hrv', 'hun', 'hye', 'ind', 'ita', 'jpn', 'kor', 'mkd', 'msa', 'nld', 'nor', 'pol', 'por', 'ron', 'rus',
|
||||
'slk', 'slv', 'spa', 'sqi', 'srp', 'swe', 'tha', 'tur', 'ukr', 'vie', 'zho'
|
||||
]}
|
||||
video_types = (Episode,)
|
||||
server_url = 'http://www.addic7ed.com/'
|
||||
|
||||
def __init__(self, username=None, password=None):
|
||||
if username is not None and password is None or username is None and password is not None:
|
||||
raise ConfigurationError('Username and password must be specified')
|
||||
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.logged_in = False
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
# login
|
||||
if self.username is not None and self.password is not None:
|
||||
logger.info('Logging in')
|
||||
data = {'username': self.username, 'password': self.password, 'Submit': 'Log in'}
|
||||
r = self.session.post(self.server_url + 'dologin.php', data, allow_redirects=False, timeout=10)
|
||||
|
||||
if r.status_code != 302:
|
||||
raise AuthenticationError(self.username)
|
||||
|
||||
logger.debug('Logged in')
|
||||
self.logged_in = True
|
||||
|
||||
def terminate(self):
|
||||
# logout
|
||||
if self.logged_in:
|
||||
logger.info('Logging out')
|
||||
r = self.session.get(self.server_url + 'logout.php', timeout=10)
|
||||
r.raise_for_status()
|
||||
logger.debug('Logged out')
|
||||
self.logged_in = False
|
||||
|
||||
self.session.close()
|
||||
|
||||
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
|
||||
def _get_show_ids(self):
|
||||
"""Get the ``dict`` of show ids per series by querying the `shows.php` page.
|
||||
|
||||
:return: show id per series, lower case and without quotes.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
# get the show page
|
||||
logger.info('Getting show ids')
|
||||
r = self.session.get(self.server_url + 'shows.php', timeout=10)
|
||||
r.raise_for_status()
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# populate the show ids
|
||||
show_ids = {}
|
||||
for show in soup.select('td.version > h3 > a[href^="/show/"]'):
|
||||
show_ids[show.text.lower().replace('\'', '')] = int(show['href'][6:])
|
||||
logger.debug('Found %d show ids', len(show_ids))
|
||||
|
||||
return show_ids
|
||||
|
||||
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
|
||||
def _search_show_id(self, series, year=None):
|
||||
"""Search the show id from the `series` and `year`.
|
||||
|
||||
:param string series: series of the episode.
|
||||
:param year: year of the series, if any.
|
||||
:type year: int or None
|
||||
:return: the show id, if found.
|
||||
:rtype: int or None
|
||||
|
||||
"""
|
||||
# build the params
|
||||
series_year = '%s (%d)' % (series, year) if year is not None else series
|
||||
params = {'search': series_year, 'Submit': 'Search'}
|
||||
|
||||
# make the search
|
||||
logger.info('Searching show ids with %r', params)
|
||||
r = self.session.get(self.server_url + 'search.php', params=params, timeout=10)
|
||||
r.raise_for_status()
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# get the suggestion
|
||||
suggestion = soup.select('span.titulo > a[href^="/show/"]')
|
||||
if not suggestion:
|
||||
logger.warning('Show id not found: no suggestion')
|
||||
return None
|
||||
if not suggestion[0].i.text.lower() == series_year.lower():
|
||||
logger.warning('Show id not found: suggestion does not match')
|
||||
return None
|
||||
show_id = int(suggestion[0]['href'][6:])
|
||||
logger.debug('Found show id %d', show_id)
|
||||
|
||||
return show_id
|
||||
|
||||
def get_show_id(self, series, year=None, country_code=None):
|
||||
"""Get the best matching show id for `series`, `year` and `country_code`.
|
||||
|
||||
First search in the result of :meth:`_get_show_ids` and fallback on a search with :meth:`_search_show_id`
|
||||
|
||||
:param str series: series of the episode.
|
||||
:param year: year of the series, if any.
|
||||
:type year: int or None
|
||||
:param country_code: country code of the series, if any.
|
||||
:type country_code: str or None
|
||||
:return: the show id, if found.
|
||||
:rtype: int or None
|
||||
|
||||
"""
|
||||
series_clean = series.lower().replace('\'', '')
|
||||
show_ids = self._get_show_ids()
|
||||
show_id = None
|
||||
|
||||
# attempt with country
|
||||
if not show_id and country_code:
|
||||
logger.debug('Getting show id with country')
|
||||
show_id = show_ids.get('%s (%s)' % (series_clean, country_code.lower()))
|
||||
|
||||
# attempt with year
|
||||
if not show_id and year:
|
||||
logger.debug('Getting show id with year')
|
||||
show_id = show_ids.get('%s (%d)' % (series_clean, year))
|
||||
|
||||
# attempt clean
|
||||
if not show_id:
|
||||
logger.debug('Getting show id')
|
||||
show_id = show_ids.get(series_clean)
|
||||
|
||||
# search as last resort
|
||||
if not show_id:
|
||||
logger.warning('Series not found in show ids')
|
||||
show_id = self._search_show_id(series)
|
||||
|
||||
return show_id
|
||||
|
||||
def query(self, series, season, year=None, country=None):
|
||||
# get the show id
|
||||
show_id = self.get_show_id(series, year, country)
|
||||
if show_id is None:
|
||||
logger.error('No show id found for %r (%r)', series, {'year': year, 'country': country})
|
||||
return []
|
||||
|
||||
# get the page of the season of the show
|
||||
logger.info('Getting the page of show id %d, season %d', show_id, season)
|
||||
r = self.session.get(self.server_url + 'show/%d' % show_id, params={'season': season}, timeout=10)
|
||||
r.raise_for_status()
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# loop over subtitle rows
|
||||
match = series_year_re.match(soup.select('#header font')[0].text.strip()[:-10])
|
||||
series = match.group('series')
|
||||
year = int(match.group('year')) if match.group('year') else None
|
||||
subtitles = []
|
||||
for row in soup.select('tr.epeven'):
|
||||
cells = row('td')
|
||||
|
||||
# ignore incomplete subtitles
|
||||
status = cells[5].text
|
||||
if status != 'Completed':
|
||||
logger.debug('Ignoring subtitle with status %s', status)
|
||||
continue
|
||||
|
||||
# read the item
|
||||
language = Language.fromaddic7ed(cells[3].text)
|
||||
hearing_impaired = bool(cells[6].text)
|
||||
page_link = self.server_url + cells[2].a['href'][1:]
|
||||
season = int(cells[0].text)
|
||||
episode = int(cells[1].text)
|
||||
title = cells[2].text
|
||||
version = cells[4].text
|
||||
download_link = cells[9].a['href'][1:]
|
||||
|
||||
subtitle = Addic7edSubtitle(language, hearing_impaired, page_link, series, season, episode, title, year,
|
||||
version, download_link)
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
return [s for s in self.query(video.series, video.season, video.year)
|
||||
if s.language in languages and s.episode == video.episode]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
# download the subtitle
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
r = self.session.get(self.server_url + subtitle.download_link, headers={'Referer': subtitle.page_link},
|
||||
timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# detect download limit exceeded
|
||||
if r.headers['Content-Type'] == 'text/html':
|
||||
raise DownloadLimitExceeded
|
||||
|
||||
subtitle.content = fix_line_ending(r.content)
|
||||
@@ -0,0 +1,255 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import base64
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import zlib
|
||||
|
||||
from babelfish import Language, language_converters
|
||||
from guessit import guess_episode_info, guess_movie_info
|
||||
from six.moves.xmlrpc_client import ServerProxy
|
||||
|
||||
from . import Provider, TimeoutSafeTransport, get_version
|
||||
from .. import __version__
|
||||
from ..exceptions import AuthenticationError, DownloadLimitExceeded, ProviderError
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches
|
||||
from ..video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class OpenSubtitlesSubtitle(Subtitle):
|
||||
provider_name = 'opensubtitles'
|
||||
series_re = re.compile('^"(?P<series_name>.*)" (?P<series_title>.*)$')
|
||||
|
||||
def __init__(self, language, hearing_impaired, page_link, subtitle_id, matched_by, movie_kind, hash, movie_name,
|
||||
movie_release_name, movie_year, movie_imdb_id, series_season, series_episode):
|
||||
super(OpenSubtitlesSubtitle, self).__init__(language, hearing_impaired, page_link)
|
||||
self.subtitle_id = subtitle_id
|
||||
self.matched_by = matched_by
|
||||
self.movie_kind = movie_kind
|
||||
self.hash = hash
|
||||
self.movie_name = movie_name
|
||||
self.movie_release_name = movie_release_name
|
||||
self.movie_year = movie_year
|
||||
self.movie_imdb_id = movie_imdb_id
|
||||
self.series_season = series_season
|
||||
self.series_episode = series_episode
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return str(self.subtitle_id)
|
||||
|
||||
@property
|
||||
def series_name(self):
|
||||
return self.series_re.match(self.movie_name).group('series_name')
|
||||
|
||||
@property
|
||||
def series_title(self):
|
||||
return self.series_re.match(self.movie_name).group('series_title')
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(OpenSubtitlesSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# episode
|
||||
if isinstance(video, Episode) and self.movie_kind == 'episode':
|
||||
# series
|
||||
if video.series and self.series_name.lower() == video.series.lower():
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.series_season == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and self.series_episode == video.episode:
|
||||
matches.add('episode')
|
||||
# title
|
||||
if video.title and self.series_title.lower() == video.title.lower():
|
||||
matches.add('title')
|
||||
# guess
|
||||
matches |= guess_matches(video, guess_episode_info(self.movie_release_name + '.mkv'))
|
||||
# movie
|
||||
elif isinstance(video, Movie) and self.movie_kind == 'movie':
|
||||
# title
|
||||
if video.title and self.movie_name.lower() == video.title.lower():
|
||||
matches.add('title')
|
||||
# year
|
||||
if video.year and self.movie_year == video.year:
|
||||
matches.add('year')
|
||||
# guess
|
||||
matches |= guess_matches(video, guess_movie_info(self.movie_release_name + '.mkv'))
|
||||
else:
|
||||
logger.info('%r is not a valid movie_kind', self.movie_kind)
|
||||
return matches
|
||||
|
||||
# hash
|
||||
if 'opensubtitles' in video.hashes and self.hash == video.hashes['opensubtitles']:
|
||||
matches.add('hash')
|
||||
# imdb_id
|
||||
if video.imdb_id and self.movie_imdb_id == video.imdb_id:
|
||||
matches.add('imdb_id')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class OpenSubtitlesProvider(Provider):
|
||||
languages = {Language.fromopensubtitles(l) for l in language_converters['opensubtitles'].codes}
|
||||
|
||||
def __init__(self):
|
||||
self.server = ServerProxy('https://api.opensubtitles.org/xml-rpc', TimeoutSafeTransport(10))
|
||||
self.token = None
|
||||
|
||||
def initialize(self):
|
||||
logger.info('Logging in')
|
||||
response = checked(self.server.LogIn('', '', 'eng', 'subliminal v%s' % get_version(__version__)))
|
||||
self.token = response['token']
|
||||
logger.debug('Logged in with token %r', self.token)
|
||||
|
||||
def terminate(self):
|
||||
logger.info('Logging out')
|
||||
checked(self.server.LogOut(self.token))
|
||||
self.server.close()
|
||||
logger.debug('Logged out')
|
||||
|
||||
def no_operation(self):
|
||||
logger.debug('No operation')
|
||||
checked(self.server.NoOperation(self.token))
|
||||
|
||||
def query(self, languages, hash=None, size=None, imdb_id=None, query=None, season=None, episode=None):
|
||||
# fill the search criteria
|
||||
criteria = []
|
||||
if hash and size:
|
||||
criteria.append({'moviehash': hash, 'moviebytesize': str(size)})
|
||||
if imdb_id:
|
||||
criteria.append({'imdbid': imdb_id})
|
||||
if query and season and episode:
|
||||
criteria.append({'query': query, 'season': season, 'episode': episode})
|
||||
elif query:
|
||||
criteria.append({'query': query})
|
||||
if not criteria:
|
||||
raise ValueError('Not enough information')
|
||||
|
||||
# add the language
|
||||
for criterion in criteria:
|
||||
criterion['sublanguageid'] = ','.join(sorted(l.opensubtitles for l in languages))
|
||||
|
||||
# query the server
|
||||
logger.info('Searching subtitles %r', criteria)
|
||||
response = checked(self.server.SearchSubtitles(self.token, criteria))
|
||||
subtitles = []
|
||||
|
||||
# exit if no data
|
||||
if not response['data']:
|
||||
logger.info('No subtitles found')
|
||||
return subtitles
|
||||
|
||||
# loop over subtitle items
|
||||
for subtitle_item in response['data']:
|
||||
# read the item
|
||||
language = Language.fromopensubtitles(subtitle_item['SubLanguageID'])
|
||||
hearing_impaired = bool(int(subtitle_item['SubHearingImpaired']))
|
||||
page_link = subtitle_item['SubtitlesLink']
|
||||
subtitle_id = int(subtitle_item['IDSubtitleFile'])
|
||||
matched_by = subtitle_item['MatchedBy']
|
||||
movie_kind = subtitle_item['MovieKind']
|
||||
hash = subtitle_item['MovieHash']
|
||||
movie_name = subtitle_item['MovieName']
|
||||
movie_release_name = subtitle_item['MovieReleaseName']
|
||||
movie_year = int(subtitle_item['MovieYear']) if subtitle_item['MovieYear'] else None
|
||||
movie_imdb_id = int(subtitle_item['IDMovieImdb'])
|
||||
series_season = int(subtitle_item['SeriesSeason']) if subtitle_item['SeriesSeason'] else None
|
||||
series_episode = int(subtitle_item['SeriesEpisode']) if subtitle_item['SeriesEpisode'] else None
|
||||
|
||||
subtitle = OpenSubtitlesSubtitle(language, hearing_impaired, page_link, subtitle_id, matched_by, movie_kind,
|
||||
hash, movie_name, movie_release_name, movie_year, movie_imdb_id,
|
||||
series_season, series_episode)
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
query = season = episode = None
|
||||
if isinstance(video, Episode):
|
||||
query = video.series
|
||||
season = video.season
|
||||
episode = video.episode
|
||||
elif ('opensubtitles' not in video.hashes or not video.size) and not video.imdb_id:
|
||||
query = video.name.split(os.sep)[-1]
|
||||
|
||||
return self.query(languages, hash=video.hashes.get('opensubtitles'), size=video.size, imdb_id=video.imdb_id,
|
||||
query=query, season=season, episode=episode)
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
response = checked(self.server.DownloadSubtitles(self.token, [str(subtitle.subtitle_id)]))
|
||||
subtitle.content = fix_line_ending(zlib.decompress(base64.b64decode(response['data'][0]['data']), 47))
|
||||
|
||||
|
||||
class OpenSubtitlesError(ProviderError):
|
||||
"""Base class for non-generic :class:`OpenSubtitlesProvider` exceptions."""
|
||||
pass
|
||||
|
||||
|
||||
class Unauthorized(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '401 Unauthorized'."""
|
||||
pass
|
||||
|
||||
|
||||
class NoSession(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '406 No session'."""
|
||||
pass
|
||||
|
||||
|
||||
class DownloadLimitReached(OpenSubtitlesError, DownloadLimitExceeded):
|
||||
"""Exception raised when status is '407 Download limit reached'."""
|
||||
pass
|
||||
|
||||
|
||||
class InvalidImdbid(OpenSubtitlesError):
|
||||
"""Exception raised when status is '413 Invalid ImdbID'."""
|
||||
pass
|
||||
|
||||
|
||||
class UnknownUserAgent(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '414 Unknown User Agent'."""
|
||||
pass
|
||||
|
||||
|
||||
class DisabledUserAgent(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '415 Disabled user agent'."""
|
||||
pass
|
||||
|
||||
|
||||
class ServiceUnavailable(OpenSubtitlesError):
|
||||
"""Exception raised when status is '503 Service Unavailable'."""
|
||||
pass
|
||||
|
||||
|
||||
def checked(response):
|
||||
"""Check a response status before returning it.
|
||||
|
||||
:param response: a response from a XMLRPC call to OpenSubtitles.
|
||||
:return: the response.
|
||||
:raise: :class:`OpenSubtitlesError`
|
||||
|
||||
"""
|
||||
status_code = int(response['status'][:3])
|
||||
if status_code == 401:
|
||||
raise Unauthorized
|
||||
if status_code == 406:
|
||||
raise NoSession
|
||||
if status_code == 407:
|
||||
raise DownloadLimitReached
|
||||
if status_code == 413:
|
||||
raise InvalidImdbid
|
||||
if status_code == 414:
|
||||
raise UnknownUserAgent
|
||||
if status_code == 415:
|
||||
raise DisabledUserAgent
|
||||
if status_code == 503:
|
||||
raise ServiceUnavailable
|
||||
if status_code != 200:
|
||||
raise OpenSubtitlesError(response['status'])
|
||||
|
||||
return response
|
||||
@@ -0,0 +1,173 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import io
|
||||
import logging
|
||||
import re
|
||||
|
||||
from babelfish import Language, language_converters
|
||||
from guessit import guess_episode_info, guess_movie_info
|
||||
try:
|
||||
from lxml import etree
|
||||
except ImportError:
|
||||
try:
|
||||
import xml.etree.cElementTree as etree
|
||||
except ImportError:
|
||||
import xml.etree.ElementTree as etree
|
||||
from requests import Session
|
||||
from zipfile import ZipFile
|
||||
|
||||
from . import Provider, get_version
|
||||
from .. import __version__
|
||||
from ..exceptions import ProviderError
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches
|
||||
from ..video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PodnapisiSubtitle(Subtitle):
|
||||
provider_name = 'podnapisi'
|
||||
|
||||
def __init__(self, language, hearing_impaired, page_link, pid, releases, title, season=None, episode=None,
|
||||
year=None):
|
||||
super(PodnapisiSubtitle, self).__init__(language, hearing_impaired, page_link)
|
||||
self.pid = pid
|
||||
self.releases = releases
|
||||
self.title = title
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.year = year
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.pid
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(PodnapisiSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# episode
|
||||
if isinstance(video, Episode):
|
||||
# series
|
||||
if video.series and self.title.lower() == video.series.lower():
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
# guess
|
||||
for release in self.releases:
|
||||
matches |= guess_matches(video, guess_episode_info(release + '.mkv'))
|
||||
# movie
|
||||
elif isinstance(video, Movie):
|
||||
# title
|
||||
if video.title and self.title.lower() == video.title.lower():
|
||||
matches.add('title')
|
||||
# guess
|
||||
for release in self.releases:
|
||||
matches |= guess_matches(video, guess_movie_info(release + '.mkv'))
|
||||
# year
|
||||
if video.year and self.year == video.year:
|
||||
matches.add('year')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class PodnapisiProvider(Provider):
|
||||
languages = ({Language('por', 'BR'), Language('srp', script='Latn')} |
|
||||
{Language.fromalpha2(l) for l in language_converters['alpha2'].codes})
|
||||
video_types = (Episode, Movie)
|
||||
server_url = 'http://podnapisi.net/subtitles/'
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def query(self, language, keyword, season=None, episode=None, year=None):
|
||||
# set parameters, see http://www.podnapisi.net/forum/viewtopic.php?f=62&t=26164#p212652
|
||||
params = {'sXML': 1, 'sL': str(language), 'sK': keyword}
|
||||
is_episode = False
|
||||
if season and episode:
|
||||
is_episode = True
|
||||
params['sTS'] = season
|
||||
params['sTE'] = episode
|
||||
if year:
|
||||
params['sY'] = year
|
||||
|
||||
# loop over paginated results
|
||||
logger.info('Searching subtitles %r', params)
|
||||
subtitles = []
|
||||
pids = set()
|
||||
while True:
|
||||
# query the server
|
||||
xml = etree.fromstring(self.session.get(self.server_url + 'search/old', params=params, timeout=10).content)
|
||||
|
||||
# exit if no results
|
||||
if not int(xml.find('pagination/results').text):
|
||||
logger.debug('No subtitles found')
|
||||
break
|
||||
|
||||
# loop over subtitles
|
||||
for subtitle_xml in xml.findall('subtitle'):
|
||||
# read xml elements
|
||||
language = Language.fromietf(subtitle_xml.find('language').text)
|
||||
hearing_impaired = 'n' in (subtitle_xml.find('flags').text or '')
|
||||
page_link = subtitle_xml.find('url').text
|
||||
pid = subtitle_xml.find('pid').text
|
||||
releases = []
|
||||
if subtitle_xml.find('release').text:
|
||||
for release in subtitle_xml.find('release').text.split():
|
||||
releases.append(re.sub(r'\.+$', '', release)) # remove trailing dots
|
||||
title = subtitle_xml.find('title').text
|
||||
season = int(subtitle_xml.find('tvSeason').text)
|
||||
episode = int(subtitle_xml.find('tvEpisode').text)
|
||||
year = int(subtitle_xml.find('year').text)
|
||||
|
||||
if is_episode:
|
||||
subtitle = PodnapisiSubtitle(language, hearing_impaired, page_link, pid, releases, title,
|
||||
season=season, episode=episode, year=year)
|
||||
else:
|
||||
subtitle = PodnapisiSubtitle(language, hearing_impaired, page_link, pid, releases, title,
|
||||
year=year)
|
||||
|
||||
# ignore duplicates, see http://www.podnapisi.net/forum/viewtopic.php?f=62&t=26164&start=10#p213321
|
||||
if pid in pids:
|
||||
continue
|
||||
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
pids.add(pid)
|
||||
|
||||
# stop on last page
|
||||
if int(xml.find('pagination/current').text) >= int(xml.find('pagination/count').text):
|
||||
break
|
||||
|
||||
# increment current page
|
||||
params['page'] = int(xml.find('pagination/current').text) + 1
|
||||
logger.debug('Getting page %d', params['page'])
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
if isinstance(video, Episode):
|
||||
return [s for l in languages for s in self.query(l, video.series, season=video.season,
|
||||
episode=video.episode, year=video.year)]
|
||||
elif isinstance(video, Movie):
|
||||
return [s for l in languages for s in self.query(l, video.title, year=video.year)]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
# download as a zip
|
||||
logger.info('Downloading subtitle %r')
|
||||
r = self.session.get(self.server_url + subtitle.pid + '/download', params={'container': 'zip'}, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# open the zip
|
||||
with ZipFile(io.BytesIO(r.content)) as zf:
|
||||
if len(zf.namelist()) > 1:
|
||||
raise ProviderError('More than one file to unzip')
|
||||
|
||||
subtitle.content = fix_line_ending(zf.read(zf.namelist()[0]))
|
||||
@@ -0,0 +1,82 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
|
||||
from babelfish import Language
|
||||
from requests import Session
|
||||
|
||||
from . import Provider, get_version
|
||||
from .. import __version__
|
||||
from ..subtitle import Subtitle, fix_line_ending
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class TheSubDBSubtitle(Subtitle):
|
||||
provider_name = 'thesubdb'
|
||||
|
||||
def __init__(self, language, hash):
|
||||
super(TheSubDBSubtitle, self).__init__(language)
|
||||
self.hash = hash
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.hash
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(TheSubDBSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# hash
|
||||
if 'thesubdb' in video.hashes and video.hashes['thesubdb'] == self.hash:
|
||||
matches.add('hash')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class TheSubDBProvider(Provider):
|
||||
languages = {Language.fromalpha2(l) for l in ['en', 'es', 'fr', 'it', 'nl', 'pl', 'pt', 'ro', 'sv', 'tr']}
|
||||
required_hash = 'thesubdb'
|
||||
server_url = 'http://api.thesubdb.com/'
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'SubDB/1.0 (subliminal/%s; https://github.com/Diaoul/subliminal)' %
|
||||
get_version(__version__)}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def query(self, hash):
|
||||
# make the query
|
||||
params = {'action': 'search', 'hash': hash}
|
||||
logger.info('Searching subtitles %r', params)
|
||||
r = self.session.get(self.server_url, params=params, timeout=10)
|
||||
|
||||
# handle subtitles not found and errors
|
||||
if r.status_code == 404:
|
||||
logger.debug('No subtitles found')
|
||||
return []
|
||||
r.raise_for_status()
|
||||
|
||||
# loop over languages
|
||||
subtitles = []
|
||||
for language_code in r.text.split(','):
|
||||
language = Language.fromalpha2(language_code)
|
||||
|
||||
subtitle = TheSubDBSubtitle(language, hash)
|
||||
logger.info('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
return [s for s in self.query(video.hashes['thesubdb']) if s.language in languages]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
logger.info('Downloading subtitle %r')
|
||||
params = {'action': 'download', 'hash': subtitle.hash, 'language': subtitle.language.alpha2}
|
||||
r = self.session.get(self.server_url, params=params, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
subtitle.content = fix_line_ending(r.content)
|
||||
@@ -0,0 +1,202 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import io
|
||||
import logging
|
||||
import re
|
||||
from zipfile import ZipFile
|
||||
|
||||
from babelfish import Language
|
||||
from requests import Session
|
||||
|
||||
from . import ParserBeautifulSoup, Provider, get_version
|
||||
from .. import __version__
|
||||
from ..cache import EPISODE_EXPIRATION_TIME, SHOW_EXPIRATION_TIME, region
|
||||
from ..exceptions import ProviderError
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches, guess_properties
|
||||
from ..video import Episode
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
link_re = re.compile('^(?P<series>.+?)(?: \(?\d{4}\)?| \((?:US|UK)\))? \((?P<first_year>\d{4})-\d{4}\)$')
|
||||
episode_id_re = re.compile('^episode-\d+\.html$')
|
||||
|
||||
|
||||
class TVsubtitlesSubtitle(Subtitle):
|
||||
provider_name = 'tvsubtitles'
|
||||
|
||||
def __init__(self, language, page_link, subtitle_id, series, season, episode, year, rip, release):
|
||||
super(TVsubtitlesSubtitle, self).__init__(language, page_link=page_link)
|
||||
self.subtitle_id = subtitle_id
|
||||
self.series = series
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.year = year
|
||||
self.rip = rip
|
||||
self.release = release
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return str(self.subtitle_id)
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(TVsubtitlesSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# series
|
||||
if video.series and self.series.lower() == video.series.lower():
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
# year
|
||||
if self.year == video.year:
|
||||
matches.add('year')
|
||||
# release_group
|
||||
if video.release_group and self.release and video.release_group.lower() in self.release.lower():
|
||||
matches.add('release_group')
|
||||
# other properties
|
||||
if self.release:
|
||||
matches |= guess_matches(video, guess_properties(self.release), partial=True)
|
||||
if self.rip:
|
||||
matches |= guess_matches(video, guess_properties(self.rip), partial=True)
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class TVsubtitlesProvider(Provider):
|
||||
languages = {Language('por', 'BR')} | {Language(l) for l in [
|
||||
'ara', 'bul', 'ces', 'dan', 'deu', 'ell', 'eng', 'fin', 'fra', 'hun', 'ita', 'jpn', 'kor', 'nld', 'pol', 'por',
|
||||
'ron', 'rus', 'spa', 'swe', 'tur', 'ukr', 'zho'
|
||||
]}
|
||||
video_types = (Episode,)
|
||||
server_url = 'http://www.tvsubtitles.net/'
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
|
||||
def search_show_id(self, series, year=None):
|
||||
"""Search the show id from the `series` and `year`.
|
||||
|
||||
:param string series: series of the episode.
|
||||
:param year: year of the series, if any.
|
||||
:type year: int or None
|
||||
:return: the show id, if any.
|
||||
:rtype: int or None
|
||||
|
||||
"""
|
||||
# make the search
|
||||
logger.info('Searching show id for %r', series)
|
||||
r = self.session.post(self.server_url + 'search.php', data={'q': series}, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# get the series out of the suggestions
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
show_id = None
|
||||
for suggestion in soup.select('div.left li div a[href^="/tvshow-"]'):
|
||||
match = link_re.match(suggestion.text)
|
||||
if not match:
|
||||
logger.error('Failed to match %s', suggestion.text)
|
||||
continue
|
||||
|
||||
if match.group('series').lower() == series.lower():
|
||||
if year is not None and int(match.group('first_year')) != year:
|
||||
logger.debug('Year does not match')
|
||||
continue
|
||||
show_id = int(suggestion['href'][8:-5])
|
||||
logger.debug('Found show id %d', show_id)
|
||||
break
|
||||
|
||||
return show_id
|
||||
|
||||
@region.cache_on_arguments(expiration_time=EPISODE_EXPIRATION_TIME)
|
||||
def get_episode_ids(self, show_id, season):
|
||||
"""Get episode ids from the show id and the season.
|
||||
|
||||
:param int show_id: show id.
|
||||
:param int season: season of the episode.
|
||||
:return: episode ids per episode number.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
# get the page of the season of the show
|
||||
logger.info('Getting the page of show id %d, season %d', show_id, season)
|
||||
r = self.session.get(self.server_url + 'tvshow-%d-%d.html' % (show_id, season), timeout=10)
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# loop over episode rows
|
||||
episode_ids = {}
|
||||
for row in soup.select('table#table5 tr'):
|
||||
# skip rows that do not have a link to the episode page
|
||||
if not row('a', href=episode_id_re):
|
||||
continue
|
||||
|
||||
# extract data from the cells
|
||||
cells = row('td')
|
||||
episode = int(cells[0].text.split('x')[1])
|
||||
episode_id = int(cells[1].a['href'][8:-5])
|
||||
episode_ids[episode] = episode_id
|
||||
|
||||
if episode_ids:
|
||||
logger.debug('Found episode ids %r', episode_ids)
|
||||
else:
|
||||
logger.warning('No episode ids found')
|
||||
|
||||
return episode_ids
|
||||
|
||||
def query(self, series, season, episode, year=None):
|
||||
# search the show id
|
||||
show_id = self.search_show_id(series, year)
|
||||
if show_id is None:
|
||||
logger.error('No show id found for %r (%r)', series, {'year': year})
|
||||
return []
|
||||
|
||||
# get the episode ids
|
||||
episode_ids = self.get_episode_ids(show_id, season)
|
||||
if episode not in episode_ids:
|
||||
logger.error('Episode %d not found', episode)
|
||||
return []
|
||||
|
||||
# get the episode page
|
||||
logger.info('Getting the page for episode %d', episode_ids[episode])
|
||||
r = self.session.get(self.server_url + 'episode-%d.html' % episode_ids[episode], timeout=10)
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# loop over subtitles rows
|
||||
subtitles = []
|
||||
for row in soup.select('.subtitlen'):
|
||||
# read the item
|
||||
language = Language.fromtvsubtitles(row.h5.img['src'][13:-4])
|
||||
subtitle_id = int(row.parent['href'][10:-5])
|
||||
page_link = self.server_url + 'subtitle-%d.html' % subtitle_id
|
||||
rip = row.find('p', title='rip').text.strip() or None
|
||||
release = row.find('p', title='release').text.strip() or None
|
||||
|
||||
subtitle = TVsubtitlesSubtitle(language, page_link, subtitle_id, series, season, episode, year, rip,
|
||||
release)
|
||||
logger.info('Found subtitle %s', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
return [s for s in self.query(video.series, video.season, video.episode, video.year) if s.language in languages]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
# download as a zip
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
r = self.session.get(self.server_url + 'download-%d.html' % subtitle.subtitle_id, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# open the zip
|
||||
with ZipFile(io.BytesIO(r.content)) as zf:
|
||||
if len(zf.namelist()) > 1:
|
||||
raise ProviderError('More than one file to unzip')
|
||||
|
||||
subtitle.content = fix_line_ending(zf.read(zf.namelist()[0]))
|
||||
Executable
+125
@@ -0,0 +1,125 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
This module is responsible for calculating the :attr:`~subliminal.video.Video.scores` dicts
|
||||
(:attr:`Episode.scores <subliminal.video.Episode.scores>` and :attr:`Movie.scores <subliminal.video.Movie.scores>`)
|
||||
by assigning a score to a match.
|
||||
|
||||
.. note::
|
||||
|
||||
To avoid unnecessary dependency on `sympy <http://www.sympy.org/>`_ and boost subliminal's import time, the
|
||||
resulting scores are hardcoded in their respective classes and manually updated when the set of equations change.
|
||||
|
||||
Available matches:
|
||||
|
||||
* hearing_impaired
|
||||
* format
|
||||
* release_group
|
||||
* resolution
|
||||
* video_codec
|
||||
* audio_codec
|
||||
* imdb_id
|
||||
* hash
|
||||
* title
|
||||
* year
|
||||
* series
|
||||
* season
|
||||
* episode
|
||||
* tvdb_id
|
||||
|
||||
|
||||
The :meth:`Subtitle.get_matches <subliminal.subtitle.Subtitle.get_matches>` method get the matches between the
|
||||
:class:`~subliminal.subtitle.Subtitle` and the :class:`~subliminal.video.Video` and
|
||||
:func:`~subliminal.subtitle.compute_score` computes the score.
|
||||
|
||||
"""
|
||||
from __future__ import unicode_literals, print_function
|
||||
|
||||
from sympy import Eq, solve, symbols
|
||||
|
||||
|
||||
# Symbols
|
||||
hearing_impaired, format, release_group, resolution = symbols('hearing_impaired format release_group resolution')
|
||||
video_codec, audio_codec, imdb_id, hash, title, year = symbols('video_codec audio_codec imdb_id hash title year')
|
||||
series, season, episode, tvdb_id = symbols('series season episode tvdb_id')
|
||||
|
||||
|
||||
def solve_episode_equations():
|
||||
"""Solve the score equations for an :class:`~subliminal.video.Episode`.
|
||||
|
||||
The equations are the following:
|
||||
|
||||
1. hash = resolution + format + video_codec + audio_codec + series + season + episode + year + release_group
|
||||
2. series = resolution + video_codec + audio_codec + season + episode + release_group + 1
|
||||
3. year = series
|
||||
4. tvdb_id = series + year
|
||||
5. season = resolution + video_codec + audio_codec + 1
|
||||
6. imdb_id = series + season + episode + year
|
||||
7. format = video_codec + audio_codec
|
||||
8. resolution = video_codec
|
||||
9. video_codec = 2 * audio_codec
|
||||
10. title = season + episode
|
||||
11. season = episode
|
||||
12. release_group = season
|
||||
13. audio_codec = 2 * hearing_impaired
|
||||
14. hearing_impaired = 1
|
||||
|
||||
:return: the result of the equations.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
equations = [
|
||||
Eq(hash, resolution + format + video_codec + audio_codec + series + season + episode + year + release_group),
|
||||
Eq(series, resolution + video_codec + audio_codec + season + episode + release_group + 1),
|
||||
Eq(year, series),
|
||||
Eq(tvdb_id, series + year),
|
||||
Eq(season, resolution + video_codec + audio_codec + 1),
|
||||
Eq(imdb_id, series + season + episode + year),
|
||||
Eq(format, video_codec + audio_codec),
|
||||
Eq(resolution, video_codec),
|
||||
Eq(video_codec, 2 * audio_codec),
|
||||
Eq(title, season + episode),
|
||||
Eq(season, episode),
|
||||
Eq(release_group, season),
|
||||
Eq(audio_codec, 2 * hearing_impaired),
|
||||
Eq(hearing_impaired, 1)
|
||||
]
|
||||
|
||||
return solve(equations, [hearing_impaired, format, release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hash, series, season, episode, title, year, tvdb_id])
|
||||
|
||||
|
||||
def solve_movie_equations():
|
||||
"""Solve the score equations for a :class:`~subliminal.video.Movie`.
|
||||
|
||||
The equations are the following:
|
||||
|
||||
1. hash = resolution + format + video_codec + audio_codec + title + year + release_group
|
||||
2. imdb_id = hash
|
||||
3. resolution = video_codec
|
||||
4. video_codec = 2 * audio_codec
|
||||
5. format = video_codec + audio_codec
|
||||
6. title = resolution + video_codec + audio_codec + year + 1
|
||||
7. release_group = resolution + video_codec + audio_codec + 1
|
||||
8. year = release_group + 1
|
||||
9. audio_codec = 2 * hearing_impaired
|
||||
10. hearing_impaired = 1
|
||||
|
||||
:return: the result of the equations.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
equations = [
|
||||
Eq(hash, resolution + format + video_codec + audio_codec + title + year + release_group),
|
||||
Eq(imdb_id, hash),
|
||||
Eq(resolution, video_codec),
|
||||
Eq(video_codec, 2 * audio_codec),
|
||||
Eq(format, video_codec + audio_codec),
|
||||
Eq(title, resolution + video_codec + audio_codec + year + 1),
|
||||
Eq(release_group, resolution + video_codec + audio_codec + 1),
|
||||
Eq(year, release_group + 1),
|
||||
Eq(audio_codec, 2 * hearing_impaired),
|
||||
Eq(hearing_impaired, 1)
|
||||
]
|
||||
|
||||
return solve(equations, [hearing_impaired, format, release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hash, title, year])
|
||||
@@ -1,425 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from itertools import groupby
|
||||
import ConfigParser
|
||||
import PluginWorker
|
||||
import Queue
|
||||
import locale
|
||||
import logging
|
||||
import mimetypes
|
||||
import os
|
||||
import plugins
|
||||
import sys
|
||||
import traceback
|
||||
import locale
|
||||
import encodingKludge as ek
|
||||
|
||||
|
||||
SUPPORTED_FORMATS = 'video/x-msvideo', 'video/quicktime', 'video/x-matroska', 'video/mp4'
|
||||
logger = logging.getLogger('subliminal')
|
||||
SYS_ENCODING = None
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, "")
|
||||
SYS_ENCODING = locale.getpreferredencoding()
|
||||
except (locale.Error, IOError):
|
||||
pass
|
||||
# for OSes that are poorly configured I'll just force UTF-8
|
||||
if not SYS_ENCODING or SYS_ENCODING in ('ANSI_X3.4-1968', 'US-ASCII', 'ASCII'):
|
||||
SYS_ENCODING = 'UTF-8'
|
||||
|
||||
|
||||
class Subliminal(object):
|
||||
"""Main Subliminal class"""
|
||||
|
||||
def __init__(self, config=True, cache_dir=True, workers=4, multi=False, force=False, max_depth=3, autostart=False, plugins_config=None):
|
||||
# set default values
|
||||
self.multi = multi
|
||||
self.force = force
|
||||
self.max_depth = max_depth
|
||||
self.config = None
|
||||
self.config_file = None
|
||||
self.cache_dir = None
|
||||
self.taskQueue = Queue.Queue()
|
||||
self.resultQueue = Queue.Queue()
|
||||
self._languages = None
|
||||
self._plugins = self.listAPIPlugins()
|
||||
self.workers = workers
|
||||
self.plugins_config = plugins_config
|
||||
if autostart:
|
||||
self.startWorkers()
|
||||
# handle configuration file preferences
|
||||
try:
|
||||
if config == True: # default configuration file
|
||||
import xdg.BaseDirectory as bd
|
||||
self.config = ConfigParser.SafeConfigParser({"languages": "", "plugins": ""})
|
||||
self.config_file = ek.ek(os.path.join, bd.xdg_config_home, "subliminal", "config.ini")
|
||||
if not ek.ek(os.path.exists, self.config_file): # configuration file doesn't exist, create it
|
||||
self._createConfigFile()
|
||||
else: # configuration file exists, load it
|
||||
self._loadConfigFile()
|
||||
elif config: # custom configuration file
|
||||
self.config = ConfigParser.SafeConfigParser({"languages": "", "plugins": ""})
|
||||
self.config_file = config
|
||||
if not ek.ek(os.path.isfile, self.config_file): # custom configuration file doesn't exist, create it
|
||||
self._createConfigFile()
|
||||
else:
|
||||
self._loadConfigFile()
|
||||
except:
|
||||
self.config = None
|
||||
self.config_file = None
|
||||
logger.error(u"Failed to use the configuration file, continue without it")
|
||||
raise
|
||||
# handle cache directory preferences
|
||||
try:
|
||||
if cache_dir == True: # default cache directory
|
||||
import xdg.BaseDirectory as bd
|
||||
self.cache_dir = ek.ek(os.path.join, bd.xdg_config_home, "subliminal", "cache")
|
||||
if not ek.ek(os.path.exists, self.cache_dir): # cache directory doesn't exist, create it
|
||||
ek.ek(os.mkdir, self.cache_dir)
|
||||
logger.debug(u'Creating cache directory: %s' % self.cache_dir)
|
||||
elif cache_dir: # custom configuration file
|
||||
self.cache_dir = cache_dir
|
||||
if not ek.ek(os.path.isdir, self.cache_dir): # custom v file doesn't exist, create it
|
||||
ek.ek(os.mkdir, self.cache_dir)
|
||||
logger.debug(u'Creating cache directory: %s' % self.cache_dir)
|
||||
except:
|
||||
self.cache_dir = None
|
||||
logger.error(u"Failed to use the cache directory, continue without it")
|
||||
|
||||
def _loadConfigFile(self):
|
||||
"""Load a configuration file specified in self.config_file"""
|
||||
self.config.read(self.config_file)
|
||||
self._loadLanguagesFromConfig()
|
||||
self._loadPluginsFromConfig()
|
||||
|
||||
def _createConfigFile(self):
|
||||
"""Create a configuration file specified in self.config_file"""
|
||||
folder = ek.ek(os.path.dirname, self.config_file)
|
||||
if not ek.ek(os.path.exists, folder):
|
||||
logger.info(u"Creating folder: %s" % folder)
|
||||
ek.ek(os.mkdir, folder)
|
||||
# try to load a language from system
|
||||
self._loadLanguageFromSystem()
|
||||
self.config.set("DEFAULT", "languages", ",".join(self._languages))
|
||||
self.config.set("DEFAULT", "plugins", ",".join(self._plugins))
|
||||
self.config.add_section("SubtitleSource")
|
||||
self.config.set("SubtitleSource", "key", "")
|
||||
self._writeConfigFile()
|
||||
logger.info(u"Creating configuration file: %s" % self.config_file)
|
||||
logger.debug(u"Languages in created configuration file: %s" % self._languages)
|
||||
logger.debug(u"Plugins in created configuration file: %s" % self._plugins)
|
||||
|
||||
@staticmethod
|
||||
def listExistingPlugins():
|
||||
"""List all possible plugins"""
|
||||
return map(lambda x: x.__name__, plugins.PluginBase.PluginBase.__subclasses__())
|
||||
|
||||
@staticmethod
|
||||
def listAPIPlugins():
|
||||
"""List plugins that use API"""
|
||||
return filter(Subliminal.isAPIBasedPlugin, Subliminal.listExistingPlugins())
|
||||
|
||||
def _writeConfigFile(self):
|
||||
"""Write the configuration file"""
|
||||
configfile = open(self.config_file, "w")
|
||||
self.config.write(configfile)
|
||||
configfile.close()
|
||||
|
||||
def get_languages(self):
|
||||
"""Get current languages"""
|
||||
return self._languages
|
||||
|
||||
def set_languages(self, value):
|
||||
"""Set languages and save to configuration file if specified by the constructor"""
|
||||
logger.debug(u"Setting languages to %s" % value)
|
||||
self._languages = value
|
||||
if self.config:
|
||||
self._saveLanguagesToConfig()
|
||||
|
||||
@staticmethod
|
||||
def isValidLanguage(language):
|
||||
"""Check if a language is valid"""
|
||||
if len(language) != 2:
|
||||
logger.error(u"Language %s is not valid" % language)
|
||||
return False
|
||||
return True
|
||||
|
||||
def _saveLanguagesToConfig(self):
|
||||
"""Save languages to configuration file"""
|
||||
logger.debug(u"Saving languages %s to configuration file" % self._languages)
|
||||
self.config.set("DEFAULT", "languages", ",".join(self._languages))
|
||||
self._writeConfigFile()
|
||||
|
||||
def _loadLanguagesFromConfig(self):
|
||||
"""Load languages from configuration file"""
|
||||
configLanguages = self.config.get("DEFAULT", "languages")
|
||||
logger.debug(u"Loading languages %s from configuration file" % configLanguages)
|
||||
if not configLanguages:
|
||||
self._languages = None
|
||||
return
|
||||
self._languages = filter(self.isValidLanguage, map(str.strip, configLanguages.split(",")))
|
||||
|
||||
def _loadLanguageFromSystem(self):
|
||||
"""Load language from system"""
|
||||
logger.debug(u"Loading language from system")
|
||||
try:
|
||||
self._languages = [locale.getdefaultlocale()[0][:2]]
|
||||
logger.debug(u"Language %s loaded from system" % self._languages)
|
||||
except:
|
||||
logger.warning(u"Could not read language from system")
|
||||
|
||||
def get_plugins(self):
|
||||
"""Get current plugins"""
|
||||
return self._plugins
|
||||
|
||||
def set_plugins(self, value):
|
||||
"""Set plugins and save to configuration file if specified by the constructor"""
|
||||
logger.debug(u"Setting plugins to %s" % value)
|
||||
self._plugins = filter(self.isValidPlugin, value)
|
||||
if self.config:
|
||||
self._savePluginsToConfig()
|
||||
|
||||
@staticmethod
|
||||
def isValidPlugin(pluginName):
|
||||
"""Check if a plugin is valid (exists)"""
|
||||
if pluginName not in Subliminal.listExistingPlugins():
|
||||
logger.error(u"Plugin %s does not exist" % pluginName)
|
||||
return False
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def isAPIBasedPlugin(pluginName):
|
||||
"""Check if a plugin is API-based"""
|
||||
if not getattr(plugins, pluginName).api_based:
|
||||
return False
|
||||
return True
|
||||
|
||||
def _savePluginsToConfig(self):
|
||||
"""Save plugins to configuration file"""
|
||||
logger.debug(u"Saving plugins %s to configuration file" % self._plugins)
|
||||
self.config.set("DEFAULT", "plugins", ",".join(self._plugins))
|
||||
self._writeConfigFile()
|
||||
|
||||
def _loadPluginsFromConfig(self):
|
||||
"""Load plugins from configuration file"""
|
||||
configPlugins = self.config.get("DEFAULT", "plugins")
|
||||
logger.debug(u"Loading plugins %s from configuration file" % configPlugins)
|
||||
self._plugins = filter(self.isValidPlugin, map(str.strip, configPlugins.split(",")))
|
||||
|
||||
# getters/setters for the property _languages and _plugins
|
||||
languages = property(get_languages, set_languages)
|
||||
plugins = property(get_plugins, set_plugins)
|
||||
|
||||
def deactivatePlugin(self, plugin):
|
||||
"""Deactivate a plugin"""
|
||||
self._plugins.remove(plugin)
|
||||
if self.config:
|
||||
self._savePluginsToConfig()
|
||||
|
||||
def activatePlugin(self, plugin):
|
||||
"""Activate a plugin"""
|
||||
if self.isValidPlugin(plugin):
|
||||
self._plugins.append(plugin)
|
||||
if self.config:
|
||||
self._savePluginsToConfig()
|
||||
|
||||
def listSubtitles(self, entries):
|
||||
"""
|
||||
Searches subtitles within the active plugins and returns all found matching subtitles.
|
||||
entries can be:
|
||||
- filepaths
|
||||
- folderpaths (N.B. internal recursive search function will be used)
|
||||
- filenames
|
||||
"""
|
||||
search_results = []
|
||||
if isinstance(entries, basestring):
|
||||
entries = [ek.fixStupidEncodings(entries)]
|
||||
elif not isinstance(entries, list):
|
||||
raise TypeError('Entries should be a list or a string')
|
||||
for e in entries:
|
||||
search_results.extend(self._recursiveSearch(e))
|
||||
taskCount = 0
|
||||
for (l, f) in search_results:
|
||||
taskCount += self.searchSubtitlesThreaded(f, l)
|
||||
subtitles = []
|
||||
for i in range(taskCount):
|
||||
subtitles.extend(self.resultQueue.get(timeout=10))
|
||||
return subtitles
|
||||
|
||||
@staticmethod
|
||||
def arrangeSubtitles(subtitles):
|
||||
"""Arrange subtitles in a handy dict by filename, language and plugin"""
|
||||
arrangedSubtitles = {}
|
||||
for (filename, subsByFilename) in groupby(sorted(subtitles, key=lambda x: x["filename"]), lambda x: x["filename"]):
|
||||
arrangedSubtitles[filename] = {}
|
||||
for (language, subsByFilenameByLanguage) in groupby(sorted(subsByFilename, key=lambda x: x["lang"]), lambda x: x["lang"]):
|
||||
arrangedSubtitles[filename][language] = {}
|
||||
for (plugin, subsByFilenameByLanguageByPlugin) in groupby(sorted(subsByFilenameByLanguage, key=lambda x: x["plugin"]), lambda x: x["plugin"]):
|
||||
arrangedSubtitles[filename][language][plugin] = sorted(list(subsByFilenameByLanguageByPlugin))
|
||||
return arrangedSubtitles
|
||||
|
||||
def sortSubtitlesRaw(self, subtitles):
|
||||
"""Sort subtitles using user defined languages and plugins"""
|
||||
return sorted(subtitles, cmp=self._cmpSubtitles)
|
||||
|
||||
def _cmpSubtitles(self, x, y):
|
||||
"""
|
||||
Compares 2 subtitles elements x and y. Returns -1 if x < y, 0 if =, 1 if >
|
||||
Use filename, languages and plugin comparison
|
||||
"""
|
||||
filenames = sorted([x['filename'], y['filename']])
|
||||
if x['filename'] != y['filename'] and filenames.index(x['filename']) < filenames(y['filename']):
|
||||
return - 1
|
||||
if x['filename'] != y['filename'] and filenames.index(x['filename']) > filenames(y['filename']):
|
||||
return 1
|
||||
if self._languages and self._languages.index(x['lang']) < self._languages.index(y['lang']):
|
||||
return - 1
|
||||
if self._languages and self._languages.index(x['lang']) > self._languages.index(y['lang']):
|
||||
return 1
|
||||
if self._plugins.index(x['plugin']) < self._plugins.index(y['plugin']):
|
||||
return - 1
|
||||
if self._plugins.index(x['plugin']) > self._plugins.index(y['plugin']):
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def searchSubtitlesThreaded(self, filenames, languages):
|
||||
"""
|
||||
Makes workers search for subtitles in different languages for multiple filenames and puts the result in the result queue.
|
||||
Aslo split the work in multiple tasks
|
||||
When the function returns, all the results may not be available yet!
|
||||
"""
|
||||
logger.info(u"Searching subtitles for %s with languages %s" % (filenames, languages))
|
||||
tasks = []
|
||||
for pluginName in self._plugins:
|
||||
try:
|
||||
plugin = getattr(plugins, pluginName)(self.getConfigDict())
|
||||
except:
|
||||
logger.debug(traceback.print_exc())
|
||||
continue
|
||||
# split tasks if the plugin can't handle multi-thing queries
|
||||
tasks.extend(plugin.splitTask({'task': 'list', 'plugin': pluginName, 'languages': languages, 'filenames': filenames, 'config': self.getConfigDict()}))
|
||||
for t in tasks:
|
||||
self.taskQueue.put(t)
|
||||
return len(tasks)
|
||||
|
||||
def downloadSubtitlesThreaded(self, subtitles):
|
||||
"""
|
||||
Makes workers download subtitles and puts the result in the result queue.
|
||||
When the function returns, all the results may not be available yet!
|
||||
"""
|
||||
# 1 task per file if not multi, 1 task per file and per language if multi
|
||||
taskCount = 0
|
||||
for (filename, subsByFilename) in groupby(sorted(subtitles, key=lambda x: x["filename"]), lambda x: x["filename"]):
|
||||
if not self.multi:
|
||||
self.taskQueue.put({'task': 'download', 'subtitle': sorted(list(subsByFilename), cmp=self._cmpSubtitles), 'config': self.getConfigDict()})
|
||||
taskCount += 1
|
||||
continue
|
||||
for (language, subsByFilenameByLanguage) in groupby(sorted(subsByFilename, key=lambda x: x["lang"]), lambda x: x["lang"]):
|
||||
self.taskQueue.put({'task': 'download', 'subtitle': sorted(list(subsByFilenameByLanguage), cmp=self._cmpSubtitles), 'config': self.getConfigDict()})
|
||||
taskCount += 1
|
||||
return taskCount
|
||||
|
||||
def downloadSubtitles(self, entries):
|
||||
"""Download subtitles recursivly in entries"""
|
||||
subtitles = self.listSubtitles(entries)
|
||||
taskCount = self.downloadSubtitlesThreaded(subtitles)
|
||||
paths = []
|
||||
for i in range(taskCount):
|
||||
paths.append(self.resultQueue.get(timeout=10))
|
||||
return paths
|
||||
|
||||
def _recursiveSearch(self, entry, depth=0):
|
||||
"""
|
||||
Searches files in the entry
|
||||
This will output a list of tuples (filename, languages)
|
||||
"""
|
||||
if depth > self.max_depth and self.max_depth != 0: # we do not want to search the whole file system except if max_depth = 0
|
||||
return []
|
||||
if ek.ek(os.path.isfile, entry): # a file? scan it
|
||||
if depth != 0: # only check for valid format if recursing, trust the user
|
||||
mimetypes.add_type("video/x-matroska", ".mkv")
|
||||
mimetype = mimetypes.guess_type(entry)[0]
|
||||
if mimetype not in SUPPORTED_FORMATS:
|
||||
return []
|
||||
basepath = ek.fixStupidEncodings(ek.ek(os.path.splitext, entry)[0])
|
||||
# check for .xx.srt if needed
|
||||
if self.multi and self.languages:
|
||||
if self.force:
|
||||
return [(self.languages, [ek.ek(os.path.normpath, entry)])]
|
||||
needed_languages = self.languages[:]
|
||||
for l in self.languages:
|
||||
if ek.ek(os.path.exists, basepath + '.%s.srt' % l):
|
||||
logger.info(u"Skipping language %s for file %s as it already exists. Use the --force option to force the download" % (l, entry))
|
||||
needed_languages.remove(l)
|
||||
if needed_languages:
|
||||
return [(needed_languages, [ek.ek(os.path.normpath, entry)])]
|
||||
return []
|
||||
# single subtitle download: .srt
|
||||
if self.force or not ek.ek(os.path.exists, basepath + '.srt'):
|
||||
return [(self.languages, [ek.ek(os.path.normpath, entry)])]
|
||||
if ek.ek(os.path.isdir, entry): # a dir? recurse
|
||||
#TODO if hidden folder, don't keep going (how to handle windows/mac/linux ?)
|
||||
files = []
|
||||
for e in ek.ek(os.listdir, entry):
|
||||
files.extend(self._recursiveSearch(ek.ek(os.path.join, entry, e), depth + 1))
|
||||
files.sort()
|
||||
grouped_files = []
|
||||
for languages, group in groupby(files, lambda t: t[0]):
|
||||
filenames = []
|
||||
for t in group:
|
||||
filenames.extend(t[1])
|
||||
grouped_files.append((languages, filenames))
|
||||
return grouped_files
|
||||
return [] # anything else, nothing.
|
||||
|
||||
def startWorkers(self):
|
||||
"""Create a pool of workers and start them"""
|
||||
self.pool = []
|
||||
for i in range(self.workers):
|
||||
worker = PluginWorker.PluginWorker(self.taskQueue, self.resultQueue)
|
||||
worker.start()
|
||||
self.pool.append(worker)
|
||||
logger.debug(u"Worker %s added to the pool" % worker.name)
|
||||
|
||||
def sendStopSignal(self):
|
||||
"""Send a stop signal the pool of workers (poison pill)"""
|
||||
logger.debug(u"Sending %d poison pills into the task queue" % self.workers)
|
||||
for i in range(self.workers):
|
||||
self.taskQueue.put(None)
|
||||
|
||||
def stopWorkers(self):
|
||||
"""Stop workers using a stop signal and wait for them to terminate properly"""
|
||||
self.sendStopSignal()
|
||||
for worker in self.pool:
|
||||
worker.join()
|
||||
|
||||
def getConfigDict(self):
|
||||
"""Produce a dict with configuration items. Used by plugins to read configuration"""
|
||||
config = {}
|
||||
config['multi'] = self.multi
|
||||
config['cache_dir'] = self.cache_dir
|
||||
if self.config:
|
||||
config['subtitlesource_key'] = self.config.get('SubtitleSource', 'key')
|
||||
if self.plugins_config and 'subtitlesource_key' in self.plugins_config:
|
||||
config['subtitlesource_key'] = self.plugins_config['subtitlesource_key']
|
||||
config['force'] = self.force
|
||||
return config
|
||||
@@ -0,0 +1,302 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
import os
|
||||
|
||||
import chardet
|
||||
from guessit.matchtree import MatchTree
|
||||
from guessit.plugins.transformers import get_transformer
|
||||
import pysrt
|
||||
|
||||
from .video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Subtitle(object):
|
||||
"""Base class for subtitle.
|
||||
|
||||
:param language: language of the subtitle.
|
||||
:type language: :class:`~babelfish.language.Language`
|
||||
:param bool hearing_impaired: whether or not the subtitle is hearing impaired.
|
||||
:param page_link: URL of the web page from which the subtitle can be downloaded.
|
||||
:type page_link: str
|
||||
|
||||
"""
|
||||
#: Name of the provider that returns that class of subtitle
|
||||
provider_name = ''
|
||||
|
||||
def __init__(self, language, hearing_impaired=False, page_link=None):
|
||||
#: Language of the subtitle
|
||||
self.language = language
|
||||
|
||||
#: Whether or not the subtitle is hearing impaired
|
||||
self.hearing_impaired = hearing_impaired
|
||||
|
||||
#: URL of the web page from which the subtitle can be downloaded
|
||||
self.page_link = page_link
|
||||
|
||||
#: Content as bytes
|
||||
self.content = None
|
||||
|
||||
#: Encoding to decode with when accessing :attr:`text`
|
||||
self.encoding = None
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
"""Unique identifier of the subtitle."""
|
||||
raise NotImplementedError
|
||||
|
||||
@property
|
||||
def text(self):
|
||||
"""Content as string.
|
||||
|
||||
If :attr:`encoding` is None, the encoding is guessed with :meth:`guess_encoding`
|
||||
|
||||
"""
|
||||
if not self.content:
|
||||
return
|
||||
|
||||
return self.content.decode(self.encoding or self.guess_encoding(), errors='replace')
|
||||
|
||||
def is_valid(self):
|
||||
"""Check if a :attr:`text` is a valid SubRip format.
|
||||
|
||||
:return: whether or not the subtitle is valid.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
if not self.text:
|
||||
return False
|
||||
|
||||
try:
|
||||
pysrt.from_string(self.text, error_handling=pysrt.ERROR_RAISE)
|
||||
except pysrt.Error as e:
|
||||
if e.args[0] < 80:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def guess_encoding(self):
|
||||
"""Guess encoding using the language, falling back on chardet.
|
||||
|
||||
:return: the guessed encoding.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
logger.info('Guessing encoding for language %s', self.language)
|
||||
|
||||
# always try utf-8 first
|
||||
encodings = ['utf-8']
|
||||
|
||||
# add language-specific encodings
|
||||
if self.language.alpha3 == 'zho':
|
||||
encodings.extend(['gb18030', 'big5'])
|
||||
elif self.language.alpha3 == 'jpn':
|
||||
encodings.append('shift-jis')
|
||||
elif self.language.alpha3 == 'ara':
|
||||
encodings.append('windows-1256')
|
||||
elif self.language.alpha3 == 'heb':
|
||||
encodings.append('windows-1255')
|
||||
elif self.language.alpha3 == 'tur':
|
||||
encodings.extend(['iso-8859-9', 'windows-1254'])
|
||||
elif self.language.alpha3 == 'pol':
|
||||
# Eastern European Group 1
|
||||
encodings.extend(['windows-1250'])
|
||||
elif self.language.alpha3 == 'bul':
|
||||
# Eastern European Group 2
|
||||
encodings.extend(['windows-1251'])
|
||||
else:
|
||||
# Western European (windows-1252)
|
||||
encodings.append('latin-1')
|
||||
|
||||
# try to decode
|
||||
logger.debug('Trying encodings %r', encodings)
|
||||
for encoding in encodings:
|
||||
try:
|
||||
self.content.decode(encoding)
|
||||
except UnicodeDecodeError:
|
||||
pass
|
||||
else:
|
||||
logger.info('Guessed encoding %s', encoding)
|
||||
return encoding
|
||||
|
||||
logger.warning('Could not guess encoding from language')
|
||||
|
||||
# fallback on chardet
|
||||
encoding = chardet.detect(self.content)['encoding']
|
||||
logger.info('Chardet found encoding %s', encoding)
|
||||
|
||||
return encoding
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
"""Get the matches against the `video`.
|
||||
|
||||
:param video: the video to get the matches with.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param bool hearing_impaired: hearing impaired preference.
|
||||
:return: matches of the subtitle.
|
||||
:rtype: set
|
||||
|
||||
"""
|
||||
matches = set()
|
||||
|
||||
# hearing_impaired
|
||||
if self.hearing_impaired == hearing_impaired:
|
||||
matches.add('hearing_impaired')
|
||||
|
||||
return matches
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.provider_name + '-' + self.id)
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s %r [%s]>' % (self.__class__.__name__, self.id, self.language)
|
||||
|
||||
|
||||
def compute_score(matches, video, scores=None):
|
||||
"""Compute the score of the `matches` against the `video`.
|
||||
|
||||
Some matches count as much as a combination of others in order to level the final score:
|
||||
|
||||
* `hash` removes everything else
|
||||
* For :class:`~subliminal.video.Episode`
|
||||
|
||||
* `imdb_id` removes `series`, `tvdb_id`, `season`, `episode`, `title` and `year`
|
||||
* `tvdb_id` removes `series` and `year`
|
||||
* `title` removes `season` and `episode`
|
||||
|
||||
|
||||
:param video: the video to get the score with.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are used.
|
||||
:return: score of the subtitle.
|
||||
:rtype: int
|
||||
|
||||
"""
|
||||
final_matches = matches.copy()
|
||||
scores = scores or video.scores
|
||||
|
||||
logger.info('Computing score for matches %r and %r', matches, video)
|
||||
|
||||
# remove equivalent match combinations
|
||||
if 'hash' in final_matches:
|
||||
final_matches &= {'hash', 'hearing_impaired'}
|
||||
elif isinstance(video, Episode):
|
||||
if 'imdb_id' in final_matches:
|
||||
final_matches -= {'series', 'tvdb_id', 'season', 'episode', 'title', 'year'}
|
||||
if 'tvdb_id' in final_matches:
|
||||
final_matches -= {'series', 'year'}
|
||||
if 'title' in final_matches:
|
||||
final_matches -= {'season', 'episode'}
|
||||
|
||||
# compute score
|
||||
logger.debug('Final matches: %r', final_matches)
|
||||
score = sum((scores[match] for match in final_matches))
|
||||
logger.info('Computed score %d', score)
|
||||
|
||||
# ensure score is capped by the best possible score (hash + preferences)
|
||||
assert score <= scores['hash'] + scores['hearing_impaired']
|
||||
|
||||
return score
|
||||
|
||||
|
||||
def get_subtitle_path(video_path, language=None, extension='.srt'):
|
||||
"""Get the subtitle path using the `video_path` and `language`.
|
||||
|
||||
:param str video_path: path to the video.
|
||||
:param language: language of the subtitle to put in the path.
|
||||
:type language: :class:`~babelfish.language.Language`
|
||||
:param str extension: extension of the subtitle.
|
||||
:return: path of the subtitle.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
subtitle_root = os.path.splitext(video_path)[0]
|
||||
|
||||
if language:
|
||||
subtitle_root += '.' + str(language)
|
||||
|
||||
return subtitle_root + extension
|
||||
|
||||
|
||||
def guess_matches(video, guess, partial=False):
|
||||
"""Get matches between a `video` and a `guess`.
|
||||
|
||||
If a guess is `partial`, the absence information won't be counted as a match.
|
||||
|
||||
:param video: the video.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param guess: the guess.
|
||||
:type guess: dict
|
||||
:param bool partial: whether or not the guess is partial.
|
||||
:return: matches between the `video` and the `guess`.
|
||||
:rtype: set
|
||||
|
||||
"""
|
||||
matches = set()
|
||||
if isinstance(video, Episode):
|
||||
# series
|
||||
if video.series and 'series' in guess and guess['series'].lower() == video.series.lower():
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and 'season' in guess and guess['season'] == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and 'episodeNumber' in guess and guess['episodeNumber'] == video.episode:
|
||||
matches.add('episode')
|
||||
# year
|
||||
if video.year and 'year' in guess and guess['year'] == video.year:
|
||||
matches.add('year')
|
||||
# count "no year" as an information
|
||||
if not partial and video.year is None and 'year' not in guess:
|
||||
matches.add('year')
|
||||
elif isinstance(video, Movie):
|
||||
# year
|
||||
if video.year and 'year' in guess and guess['year'] == video.year:
|
||||
matches.add('year')
|
||||
# title
|
||||
if video.title and 'title' in guess and guess['title'].lower() == video.title.lower():
|
||||
matches.add('title')
|
||||
# release_group
|
||||
if video.release_group and 'releaseGroup' in guess and guess['releaseGroup'].lower() == video.release_group.lower():
|
||||
matches.add('release_group')
|
||||
# resolution
|
||||
if video.resolution and 'screenSize' in guess and guess['screenSize'] == video.resolution:
|
||||
matches.add('resolution')
|
||||
# format
|
||||
if video.format and 'format' in guess and guess['format'].lower() == video.format.lower():
|
||||
matches.add('format')
|
||||
# video_codec
|
||||
if video.video_codec and 'videoCodec' in guess and guess['videoCodec'] == video.video_codec:
|
||||
matches.add('video_codec')
|
||||
# audio_codec
|
||||
if video.audio_codec and 'audioCodec' in guess and guess['audioCodec'] == video.audio_codec:
|
||||
matches.add('audio_codec')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
def guess_properties(string):
|
||||
"""Extract properties from `string` using guessit's `guess_properties` transformer.
|
||||
|
||||
:param str string: the string potentially containing properties.
|
||||
:return: the guessed properties.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
mtree = MatchTree(string)
|
||||
get_transformer('guess_properties').process(mtree)
|
||||
|
||||
return mtree.matched()
|
||||
|
||||
|
||||
def fix_line_ending(content):
|
||||
"""Fix line ending of `content` by changing it to \n.
|
||||
|
||||
:param bytes content: content of the subtitle.
|
||||
:return: the content with fixed line endings.
|
||||
:rtype: bytes
|
||||
|
||||
"""
|
||||
return content.replace(b'\r\n', b'\n').replace(b'\r', b'\n')
|
||||
@@ -1,206 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Subliminal - Subtitles, faster than your thoughts
|
||||
# Copyright (c) 2008-2011 Patrick Dessalle <patrick@dessalle.be>
|
||||
# Copyright (c) 2011 Antoine Bertin <diaoulael@gmail.com>
|
||||
#
|
||||
# This file is part of Subliminal.
|
||||
#
|
||||
# Subliminal is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the Lesser GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Subliminal is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# Lesser GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the Lesser GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import unittest
|
||||
import logging
|
||||
import os
|
||||
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG, format='%(name)-24s %(levelname)-8s %(message)s')
|
||||
if not os.path.exists('/tmp/subliminal/cache'):
|
||||
os.mkdir('/tmp/subliminal/cache')
|
||||
config = {'multi': True, 'cache_dir': '/tmp/subliminal/cache', 'subtitlesource_key': '', 'force': False}
|
||||
|
||||
|
||||
class Addic7edListTestCase1(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import Addic7ed
|
||||
plugin = Addic7ed(config)
|
||||
results = plugin.list(["The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ["en", "fr"])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class Addic7edListTestCase2(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import Addic7ed
|
||||
plugin = Addic7ed(config)
|
||||
results = plugin.list(["Dexter.S05E02.720p.HDTV.x264-IMMERSE.mkv"], ["en", "fr"])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class Addic7edDownloadTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import Addic7ed
|
||||
plugin = Addic7ed(config)
|
||||
results = plugin.download(plugin.list(["/tmp/The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ["en", "fr"])[0])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class BierDopjeListTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import BierDopje
|
||||
plugin = BierDopje(config)
|
||||
results = plugin.list(["The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ["en", "fr"])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class BierDopjeListExceptionTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import BierDopje
|
||||
plugin = BierDopje(config)
|
||||
results = plugin.list(["The.Office.US.S07E08.Viewing.Party.HDTV.XviD-FQM.[VTV].avi"], ["en", "fr"])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class BierDopjeListTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import BierDopje
|
||||
plugin = BierDopje(config)
|
||||
results = plugin.list(["The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ["en", "fr"])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class OpenSubtitlesQueryTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import OpenSubtitles
|
||||
plugin = OpenSubtitles()
|
||||
results = plugin.query('Night.Watch.2004.CD1.DVDRiP.XViD-FiCO.avi', moviehash="09a2c497663259cb", bytesize="733589504") # http://trac.opensubtitles.org/projects/opensubtitles/wiki/XMLRPC
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class OpenSubtitlesQueryNoHashTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import OpenSubtitles
|
||||
plugin = OpenSubtitles()
|
||||
results = plugin.query('Night.Watch.2004.CD1.DVDRiP.XViD-FiCO.avi', languages=['en', 'fr']) # http://trac.opensubtitles.org/projects/opensubtitles/wiki/XMLRPC
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class OpenSubtitlesListTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import OpenSubtitles
|
||||
plugin = OpenSubtitles()
|
||||
results = plugin.download(plugin.query('/tmp/Night.Watch.2004.CD1.DVDRiP.XViD-FiCO.avi', moviehash="09a2c497663259cb", bytesize="733589504")[0]) # http://trac.opensubtitles.org/projects/opensubtitles/wiki/XMLRPC
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class SubtitulosListTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import Subtitulos
|
||||
plugin = Subtitulos()
|
||||
results = plugin.list(["The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ['en', 'fr'])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class SubtitulosDownloadTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import Subtitulos
|
||||
plugin = Subtitulos()
|
||||
results = plugin.download(plugin.list(["/tmp/The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ['en', 'fr'])[0])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class TheSubDBQueryTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import TheSubDB
|
||||
plugin = TheSubDB()
|
||||
results = plugin.query("test.mkv", "edc1981d6459c6111fe36205b4aff6c2")
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class TheSubDBDownloadTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import TheSubDB
|
||||
plugin = TheSubDB()
|
||||
results = plugin.download(plugin.query("/tmp/test.mkv", "edc1981d6459c6111fe36205b4aff6c2")[0])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class SubsWikiListTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import SubsWiki
|
||||
plugin = SubsWiki()
|
||||
results = plugin.list(["The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ['en', 'es'])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
|
||||
|
||||
class SubsWikiDownloadTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import SubsWiki
|
||||
plugin = SubsWiki()
|
||||
results = plugin.download(plugin.list(["/tmp/The.Big.Bang.Theory.S03E13.HDTV.XviD-2HD.mkv"], ['en', 'es'])[0])
|
||||
print results
|
||||
assert len(results) > 0
|
||||
'''
|
||||
class PodnapisiQueryTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import Podnapisi
|
||||
plugin = Podnapisi()
|
||||
results = plugin.query('09a2c497663259cb', ["en", "fr"])
|
||||
print results
|
||||
assert len(results) > 5
|
||||
|
||||
|
||||
class SubSceneListTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import SubScene
|
||||
plugin = SubScene()
|
||||
results = plugin.list(["Dexter.S04E01.HDTV.XviD-NoTV.avi"], ['en', 'fr'])
|
||||
print results
|
||||
assert len(results) > 0, "No result could be found for Dexter.S04E01.HDTV.XviD-NoTV.avi and no languages"
|
||||
|
||||
|
||||
class SubSceneDownloadTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import SubScene
|
||||
plugin = SubScene()
|
||||
results = plugin.download(plugin.list(["Dexter.S04E01.HDTV.XviD-NoTV.avi"], ['en', 'fr'])[0])
|
||||
print results
|
||||
assert len(results) > 0, "No result could be found for Dexter.S04E01.HDTV.XviD-NoTV.avi and no languages"
|
||||
|
||||
|
||||
class SubtitleSourceListTestCase(unittest.TestCase):
|
||||
def runTest(self):
|
||||
from subliminal.plugins import SubtitleSource
|
||||
plugin = SubtitleSource()
|
||||
results = plugin.list(["PrisM-Inception.2010"], ['en', 'fr'])
|
||||
print results
|
||||
assert len(results) > 0, "No result could be found for PrisM-Inception.2010"
|
||||
'''
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
@@ -0,0 +1,516 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals, division
|
||||
from datetime import datetime, timedelta
|
||||
import hashlib
|
||||
import logging
|
||||
import os
|
||||
import struct
|
||||
|
||||
from babelfish import Error as BabelfishError, Language
|
||||
from enzyme import Error as EnzymeError, MKV
|
||||
from guessit import guess_episode_info, guess_file_info, guess_movie_info
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
#: Video extensions
|
||||
VIDEO_EXTENSIONS = ('.3g2', '.3gp', '.3gp2', '.3gpp', '.60d', '.ajp', '.asf', '.asx', '.avchd', '.avi', '.bik',
|
||||
'.bix', '.box', '.cam', '.dat', '.divx', '.dmf', '.dv', '.dvr-ms', '.evo', '.flc', '.fli',
|
||||
'.flic', '.flv', '.flx', '.gvi', '.gvp', '.h264', '.m1v', '.m2p', '.m2ts', '.m2v', '.m4e',
|
||||
'.m4v', '.mjp', '.mjpeg', '.mjpg', '.mkv', '.moov', '.mov', '.movhd', '.movie', '.movx', '.mp4',
|
||||
'.mpe', '.mpeg', '.mpg', '.mpv', '.mpv2', '.mxf', '.nsv', '.nut', '.ogg', '.ogm', '.omf', '.ps',
|
||||
'.qt', '.ram', '.rm', '.rmvb', '.swf', '.ts', '.vfw', '.vid', '.video', '.viv', '.vivo', '.vob',
|
||||
'.vro', '.wm', '.wmv', '.wmx', '.wrap', '.wvx', '.wx', '.x264', '.xvid')
|
||||
|
||||
#: Subtitle extensions
|
||||
SUBTITLE_EXTENSIONS = ('.srt', '.sub', '.smi', '.txt', '.ssa', '.ass', '.mpl')
|
||||
|
||||
|
||||
class Video(object):
|
||||
"""Base class for videos.
|
||||
|
||||
Represent a video, existing or not. Attributes have an associated score based on equations defined in
|
||||
:mod:`~subliminal.score`.
|
||||
|
||||
:param str name: name or path of the video.
|
||||
:param str format: format of the video (HDTV, WEB-DL, BluRay, ...).
|
||||
:param str release_group: release group of the video.
|
||||
:param str resolution: resolution of the video stream (480p, 720p, 1080p or 1080i).
|
||||
:param str video_codec: codec of the video stream.
|
||||
:param str audio_codec: codec of the main audio stream.
|
||||
:param int imdb_id: IMDb id of the video.
|
||||
:param dict hashes: hashes of the video file by provider names.
|
||||
:param int size: size of the video file in bytes.
|
||||
:param set subtitle_languages: existing subtitle languages
|
||||
|
||||
"""
|
||||
#: Score by match property
|
||||
scores = {}
|
||||
|
||||
def __init__(self, name, format=None, release_group=None, resolution=None, video_codec=None, audio_codec=None,
|
||||
imdb_id=None, hashes=None, size=None, subtitle_languages=None):
|
||||
#: Name or path of the video
|
||||
self.name = name
|
||||
|
||||
#: Format of the video (HDTV, WEB-DL, BluRay, ...)
|
||||
self.format = format
|
||||
|
||||
#: Release group of the video
|
||||
self.release_group = release_group
|
||||
|
||||
#: Resolution of the video stream (480p, 720p, 1080p or 1080i)
|
||||
self.resolution = resolution
|
||||
|
||||
#: Codec of the video stream
|
||||
self.video_codec = video_codec
|
||||
|
||||
#: Codec of the main audio stream
|
||||
self.audio_codec = audio_codec
|
||||
|
||||
#: IMDb id of the video
|
||||
self.imdb_id = imdb_id
|
||||
|
||||
#: Hashes of the video file by provider names
|
||||
self.hashes = hashes or {}
|
||||
|
||||
#: Size of the video file in bytes
|
||||
self.size = size
|
||||
|
||||
#: Existing subtitle languages
|
||||
self.subtitle_languages = subtitle_languages or set()
|
||||
|
||||
@property
|
||||
def exists(self):
|
||||
"""Test whether the video exists."""
|
||||
return os.path.exists(self.name)
|
||||
|
||||
@property
|
||||
def age(self):
|
||||
"""Age of the video."""
|
||||
if self.exists:
|
||||
return datetime.utcnow() - datetime.utcfromtimestamp(os.path.getmtime(self.name))
|
||||
|
||||
return timedelta()
|
||||
|
||||
@classmethod
|
||||
def fromguess(cls, name, guess):
|
||||
"""Create an :class:`Episode` or a :class:`Movie` with the given `name` based on the `guess`.
|
||||
|
||||
:param str name: name of the video.
|
||||
:param dict guess: guessed data, like a :class:`~guessit.guess.Guess` instance.
|
||||
:raise: :class:`ValueError` if the `type` of the `guess` is invalid
|
||||
|
||||
"""
|
||||
if guess['type'] == 'episode':
|
||||
return Episode.fromguess(name, guess)
|
||||
|
||||
if guess['type'] == 'movie':
|
||||
return Movie.fromguess(name, guess)
|
||||
|
||||
raise ValueError('The guess must be an episode or a movie guess')
|
||||
|
||||
@classmethod
|
||||
def fromname(cls, name):
|
||||
"""Shortcut for :meth:`fromguess` with a `guess` guessed from the `name`.
|
||||
|
||||
:param str name: name of the video.
|
||||
|
||||
"""
|
||||
return cls.fromguess(name, guess_file_info(name))
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s [%r]>' % (self.__class__.__name__, self.name)
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.name)
|
||||
|
||||
|
||||
class Episode(Video):
|
||||
"""Episode :class:`Video`.
|
||||
|
||||
Scores are defined by a set of equations, see :func:`~subliminal.score.solve_episode_equations`
|
||||
|
||||
:param str series: series of the episode.
|
||||
:param int season: season number of the episode.
|
||||
:param int episode: episode number of the episode.
|
||||
:param str title: title of the episode.
|
||||
:param int year: year of series.
|
||||
:param int tvdb_id: TVDB id of the episode
|
||||
|
||||
"""
|
||||
#: Score by match property
|
||||
scores = {'hash': 137, 'imdb_id': 110, 'tvdb_id': 88, 'series': 44, 'year': 44, 'title': 22, 'season': 11,
|
||||
'episode': 11, 'release_group': 11, 'format': 6, 'video_codec': 4, 'resolution': 4, 'audio_codec': 2,
|
||||
'hearing_impaired': 1}
|
||||
|
||||
def __init__(self, name, series, season, episode, format=None, release_group=None, resolution=None,
|
||||
video_codec=None, audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None,
|
||||
title=None, year=None, tvdb_id=None):
|
||||
super(Episode, self).__init__(name, format, release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hashes, size, subtitle_languages)
|
||||
#: Series of the episode
|
||||
self.series = series
|
||||
|
||||
#: Season number of the episode
|
||||
self.season = season
|
||||
|
||||
#: Episode number of the episode
|
||||
self.episode = episode
|
||||
|
||||
#: Title of the episode
|
||||
self.title = title
|
||||
|
||||
#: Year of series
|
||||
self.year = year
|
||||
|
||||
#: TVDB id of the episode
|
||||
self.tvdb_id = tvdb_id
|
||||
|
||||
@classmethod
|
||||
def fromguess(cls, name, guess):
|
||||
if guess['type'] != 'episode':
|
||||
raise ValueError('The guess must be an episode guess')
|
||||
|
||||
if 'series' not in guess or 'season' not in guess or 'episodeNumber' not in guess:
|
||||
raise ValueError('Insufficient data to process the guess')
|
||||
|
||||
return cls(name, guess['series'], guess['season'], guess['episodeNumber'], format=guess.get('format'),
|
||||
release_group=guess.get('releaseGroup'), resolution=guess.get('screenSize'),
|
||||
video_codec=guess.get('videoCodec'), audio_codec=guess.get('audioCodec'),
|
||||
title=guess.get('title'), year=guess.get('year'))
|
||||
|
||||
@classmethod
|
||||
def fromname(cls, name):
|
||||
return cls.fromguess(name, guess_episode_info(name))
|
||||
|
||||
def __repr__(self):
|
||||
if self.year is None:
|
||||
return '<%s [%r, %dx%d]>' % (self.__class__.__name__, self.series, self.season, self.episode)
|
||||
|
||||
return '<%s [%r, %d, %dx%d]>' % (self.__class__.__name__, self.series, self.year, self.season, self.episode)
|
||||
|
||||
|
||||
class Movie(Video):
|
||||
"""Movie :class:`Video`.
|
||||
|
||||
Scores are defined by a set of equations, see :func:`~subliminal.score.solve_movie_equations`
|
||||
|
||||
:param str title: title of the movie.
|
||||
:param int year: year of the movie
|
||||
|
||||
"""
|
||||
#: Score by match property
|
||||
scores = {'hash': 62, 'imdb_id': 62, 'title': 23, 'year': 12, 'release_group': 11, 'format': 6, 'video_codec': 4,
|
||||
'resolution': 4, 'audio_codec': 2, 'hearing_impaired': 1}
|
||||
|
||||
def __init__(self, name, title, format=None, release_group=None, resolution=None, video_codec=None,
|
||||
audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None, year=None):
|
||||
super(Movie, self).__init__(name, format, release_group, resolution, video_codec, audio_codec, imdb_id, hashes,
|
||||
size, subtitle_languages)
|
||||
#: Title of the movie
|
||||
self.title = title
|
||||
|
||||
#: Year of the movie
|
||||
self.year = year
|
||||
|
||||
@classmethod
|
||||
def fromguess(cls, name, guess):
|
||||
if guess['type'] != 'movie':
|
||||
raise ValueError('The guess must be a movie guess')
|
||||
|
||||
if 'title' not in guess:
|
||||
raise ValueError('Insufficient data to process the guess')
|
||||
|
||||
return cls(name, guess['title'], format=guess.get('format'), release_group=guess.get('releaseGroup'),
|
||||
resolution=guess.get('screenSize'), video_codec=guess.get('videoCodec'),
|
||||
audio_codec=guess.get('audioCodec'), year=guess.get('year'))
|
||||
|
||||
@classmethod
|
||||
def fromname(cls, name):
|
||||
return cls.fromguess(name, guess_movie_info(name))
|
||||
|
||||
def __repr__(self):
|
||||
if self.year is None:
|
||||
return '<%s [%r]>' % (self.__class__.__name__, self.title)
|
||||
|
||||
return '<%s [%r, %d]>' % (self.__class__.__name__, self.title, self.year)
|
||||
|
||||
|
||||
def search_external_subtitles(path):
|
||||
"""Search for external subtitles from a video `path` and their associated language.
|
||||
|
||||
:param str path: path to the video.
|
||||
:return: found subtitles with their languages.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
dirpath, filename = os.path.split(path)
|
||||
dirpath = dirpath or '.'
|
||||
fileroot, fileext = os.path.splitext(filename)
|
||||
subtitles = {}
|
||||
for p in os.listdir(dirpath):
|
||||
# skip badly encoded filenames
|
||||
if isinstance(p, bytes): # pragma: no cover
|
||||
logger.error('Skipping badly encoded filename %r in %r', p.decode('utf-8', errors='replace'), dirpath)
|
||||
continue
|
||||
|
||||
# keep only valid subtitle filenames
|
||||
if not p.startswith(fileroot) or not p.endswith(SUBTITLE_EXTENSIONS):
|
||||
continue
|
||||
|
||||
# extract the potential language code
|
||||
language_code = p[len(fileroot):-len(os.path.splitext(p)[1])].replace(fileext, '').replace('_', '-')[1:]
|
||||
|
||||
# default language is undefined
|
||||
language = Language('und')
|
||||
|
||||
# attempt to parse
|
||||
if language_code:
|
||||
try:
|
||||
language = Language.fromietf(language_code)
|
||||
except ValueError:
|
||||
logger.error('Cannot parse language code %r', language_code)
|
||||
|
||||
subtitles[p] = language
|
||||
|
||||
logger.debug('Found subtitles %r', subtitles)
|
||||
|
||||
return subtitles
|
||||
|
||||
|
||||
def scan_video(path, subtitles=True, embedded_subtitles=True):
|
||||
"""Scan a video and its subtitle languages from a video `path`.
|
||||
|
||||
:param str path: existing path to the video.
|
||||
:param bool subtitles: scan for subtitles with the same name.
|
||||
:param bool embedded_subtitles: scan for embedded subtitles.
|
||||
:return: the scanned video.
|
||||
:rtype: :class:`Video`
|
||||
|
||||
"""
|
||||
# check for non-existing path
|
||||
if not os.path.exists(path):
|
||||
raise ValueError('Path does not exist')
|
||||
|
||||
# check video extension
|
||||
if not path.endswith(VIDEO_EXTENSIONS):
|
||||
raise ValueError('%s is not a valid video extension' % os.path.splitext(path)[1])
|
||||
|
||||
dirpath, filename = os.path.split(path)
|
||||
logger.info('Scanning video %r in %r', filename, dirpath)
|
||||
|
||||
# guess
|
||||
video = Video.fromguess(path, guess_file_info(path))
|
||||
|
||||
# size and hashes
|
||||
video.size = os.path.getsize(path)
|
||||
if video.size > 10485760:
|
||||
logger.debug('Size is %d', video.size)
|
||||
video.hashes['opensubtitles'] = hash_opensubtitles(path)
|
||||
video.hashes['thesubdb'] = hash_thesubdb(path)
|
||||
logger.debug('Computed hashes %r', video.hashes)
|
||||
else:
|
||||
logger.warning('Size is lower than 10MB: hashes not computed')
|
||||
|
||||
# external subtitles
|
||||
if subtitles:
|
||||
video.subtitle_languages |= set(search_external_subtitles(path).values())
|
||||
|
||||
# video metadata with enzyme
|
||||
try:
|
||||
if filename.endswith('.mkv'):
|
||||
with open(path, 'rb') as f:
|
||||
mkv = MKV(f)
|
||||
|
||||
# main video track
|
||||
if mkv.video_tracks:
|
||||
video_track = mkv.video_tracks[0]
|
||||
|
||||
# resolution
|
||||
if video_track.height in (480, 720, 1080):
|
||||
if video_track.interlaced:
|
||||
video.resolution = '%di' % video_track.height
|
||||
else:
|
||||
video.resolution = '%dp' % video_track.height
|
||||
logger.debug('Found resolution %s with enzyme', video.resolution)
|
||||
|
||||
# video codec
|
||||
if video_track.codec_id == 'V_MPEG4/ISO/AVC':
|
||||
video.video_codec = 'h264'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
elif video_track.codec_id == 'V_MPEG4/ISO/SP':
|
||||
video.video_codec = 'DivX'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
elif video_track.codec_id == 'V_MPEG4/ISO/ASP':
|
||||
video.video_codec = 'XviD'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
else:
|
||||
logger.warning('MKV has no video track')
|
||||
|
||||
# main audio track
|
||||
if mkv.audio_tracks:
|
||||
audio_track = mkv.audio_tracks[0]
|
||||
# audio codec
|
||||
if audio_track.codec_id == 'A_AC3':
|
||||
video.audio_codec = 'AC3'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
elif audio_track.codec_id == 'A_DTS':
|
||||
video.audio_codec = 'DTS'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
elif audio_track.codec_id == 'A_AAC':
|
||||
video.audio_codec = 'AAC'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
else:
|
||||
logger.warning('MKV has no audio track')
|
||||
|
||||
# subtitle tracks
|
||||
if mkv.subtitle_tracks:
|
||||
if embedded_subtitles:
|
||||
embedded_subtitle_languages = set()
|
||||
for st in mkv.subtitle_tracks:
|
||||
if st.language:
|
||||
try:
|
||||
embedded_subtitle_languages.add(Language.fromalpha3b(st.language))
|
||||
except BabelfishError:
|
||||
logger.error('Embedded subtitle track language %r is not a valid language', st.language)
|
||||
embedded_subtitle_languages.add(Language('und'))
|
||||
elif st.name:
|
||||
try:
|
||||
embedded_subtitle_languages.add(Language.fromname(st.name))
|
||||
except BabelfishError:
|
||||
logger.debug('Embedded subtitle track name %r is not a valid language', st.name)
|
||||
embedded_subtitle_languages.add(Language('und'))
|
||||
else:
|
||||
embedded_subtitle_languages.add(Language('und'))
|
||||
logger.debug('Found embedded subtitle %r with enzyme', embedded_subtitle_languages)
|
||||
video.subtitle_languages |= embedded_subtitle_languages
|
||||
else:
|
||||
logger.debug('MKV has no subtitle track')
|
||||
|
||||
except EnzymeError:
|
||||
logger.exception('Parsing video metadata with enzyme failed')
|
||||
|
||||
return video
|
||||
|
||||
|
||||
def scan_videos(path, subtitles=True, embedded_subtitles=True):
|
||||
"""Scan `path` for videos and their subtitles.
|
||||
|
||||
:param str path: existing directory path to scan.
|
||||
:param bool subtitles: scan for subtitles with the same name.
|
||||
:param bool embedded_subtitles: scan for embedded subtitles.
|
||||
:return: the scanned videos.
|
||||
:rtype: list of :class:`Video`
|
||||
|
||||
"""
|
||||
# check for non-existing path
|
||||
if not os.path.exists(path):
|
||||
raise ValueError('Path does not exist')
|
||||
|
||||
# check for non-directory path
|
||||
if not os.path.isdir(path):
|
||||
raise ValueError('Path is not a directory')
|
||||
|
||||
# walk the path
|
||||
videos = []
|
||||
for dirpath, dirnames, filenames in os.walk(path):
|
||||
# skip badly encoded directory names
|
||||
if isinstance(dirpath, bytes): # pragma: no cover
|
||||
logger.error('Skipping badly encoded directory %r', dirpath.decode('utf-8', errors='replace'))
|
||||
continue
|
||||
|
||||
logger.debug('Walking directory %s', dirpath)
|
||||
|
||||
# remove badly encoded and hidden dirnames
|
||||
for dirname in list(dirnames):
|
||||
if isinstance(dirname, bytes): # pragma: no cover
|
||||
logger.error('Skipping badly encoded dirname %r in %r', dirname.decode('utf-8', errors='replace'),
|
||||
dirpath)
|
||||
dirnames.remove(dirname)
|
||||
elif dirname.startswith('.'):
|
||||
logger.debug('Skipping hidden dirname %r in %r', dirname, dirpath)
|
||||
dirnames.remove(dirname)
|
||||
|
||||
# scan for videos
|
||||
for filename in filenames:
|
||||
# skip badly encoded filenames
|
||||
if isinstance(filename, bytes): # pragma: no cover
|
||||
logger.error('Skipping badly encoded filename %r in %r', filename.decode('utf-8', errors='replace'),
|
||||
dirpath)
|
||||
continue
|
||||
|
||||
# filter on videos
|
||||
if not filename.endswith(VIDEO_EXTENSIONS):
|
||||
continue
|
||||
|
||||
# skip hidden files
|
||||
if filename.startswith('.'):
|
||||
logger.debug('Skipping hidden filename %r in %r', filename, dirpath)
|
||||
continue
|
||||
|
||||
# reconstruct the file path
|
||||
filepath = os.path.join(dirpath, filename)
|
||||
|
||||
# skip links
|
||||
if os.path.islink(filepath):
|
||||
logger.debug('Skipping link %r in %r', filename, dirpath)
|
||||
continue
|
||||
|
||||
# scan video
|
||||
try:
|
||||
video = scan_video(filepath, subtitles=subtitles, embedded_subtitles=embedded_subtitles)
|
||||
except ValueError: # pragma: no cover
|
||||
logger.exception('Error scanning video')
|
||||
continue
|
||||
|
||||
videos.append(video)
|
||||
|
||||
return videos
|
||||
|
||||
|
||||
def hash_opensubtitles(video_path):
|
||||
"""Compute a hash using OpenSubtitles' algorithm.
|
||||
|
||||
:param str video_path: path of the video.
|
||||
:return: the hash.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
bytesize = struct.calcsize(b'<q')
|
||||
with open(video_path, 'rb') as f:
|
||||
filesize = os.path.getsize(video_path)
|
||||
filehash = filesize
|
||||
if filesize < 65536 * 2:
|
||||
return
|
||||
for _ in range(65536 // bytesize):
|
||||
filebuffer = f.read(bytesize)
|
||||
(l_value,) = struct.unpack(b'<q', filebuffer)
|
||||
filehash += l_value
|
||||
filehash &= 0xFFFFFFFFFFFFFFFF # to remain as 64bit number
|
||||
f.seek(max(0, filesize - 65536), 0)
|
||||
for _ in range(65536 // bytesize):
|
||||
filebuffer = f.read(bytesize)
|
||||
(l_value,) = struct.unpack(b'<q', filebuffer)
|
||||
filehash += l_value
|
||||
filehash &= 0xFFFFFFFFFFFFFFFF
|
||||
returnedhash = '%016x' % filehash
|
||||
|
||||
return returnedhash
|
||||
|
||||
|
||||
def hash_thesubdb(video_path):
|
||||
"""Compute a hash using TheSubDB's algorithm.
|
||||
|
||||
:param str video_path: path of the video.
|
||||
:return: the hash.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
readsize = 64 * 1024
|
||||
if os.path.getsize(video_path) < readsize:
|
||||
return
|
||||
with open(video_path, 'rb') as f:
|
||||
data = f.read(readsize)
|
||||
f.seek(-readsize, os.SEEK_END)
|
||||
data += f.read(readsize)
|
||||
|
||||
return hashlib.md5(data).hexdigest()
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,333 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: password=subliminal&username=subliminal&Submit=Log+in
|
||||
headers:
|
||||
Content-Length: ['53']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: POST
|
||||
uri: http://www.addic7ed.com/dologin.php
|
||||
response:
|
||||
body: {string: "\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com
|
||||
- For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum
|
||||
and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"
|
||||
title=\"default\" type=\"text/css\" media=\"screen\"/>\n</head>\n\n<body>\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n\n<script language=\"javascript\">\nvar url=\"/msgspopup.php?count=1\";\t\teditwin
|
||||
= window.open(url, \"msgswin\", 'height=200,width=350,toolbar=0,location=0,statusbar=0,menubar=0');
|
||||
\n\t\tif (editwin.focus) {editwin.focus()}\n</script>\n<div id=\"hBar\">\n\t\t\t
|
||||
\ <ul>\n\t\t\t\t<li><a class=\"button white\" href=\"/panel.php\">My Panel</a></li><li><a
|
||||
class=\"button white\" href=\"/newsub.php\">Upload</a></li>\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/logout.php\">Logout</a></li>\n\t\t\t </ul>\n\t\t\t </div>\n</td></tr>
|
||||
\n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n <a
|
||||
href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\" height=\"32\"
|
||||
src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\" border=\"0\"
|
||||
/></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\" alt=\"IRC\"
|
||||
border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body>\n</html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Location: [/]
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
Set-Cookie: [PHPSESSID=sji8d1inpflpb64eg1ahge4f74; path=/]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Cookie: [PHPSESSID=sji8d1inpflpb64eg1ahge4f74]
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/panel.php
|
||||
response:
|
||||
body: {string: " \n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com
|
||||
- For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum
|
||||
and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"
|
||||
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
|
||||
/> \n<link rel=\"stylesheet\" type=\"text/css\" href=\"css/panel.css\" >\n</head>\n<body>\n\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n\n<script language=\"javascript\">\nvar url=\"/msgspopup.php?count=1\";\t\teditwin
|
||||
= window.open(url, \"msgswin\", 'height=200,width=350,toolbar=0,location=0,statusbar=0,menubar=0');
|
||||
\n\t\tif (editwin.focus) {editwin.focus()}\n</script>\n<div id=\"hBar\">\n\t\t\t
|
||||
\ <ul>\n\t\t\t\t<li><a class=\"button white\" href=\"/panel.php\">My Panel</a></li><li><a
|
||||
class=\"button white\" href=\"/newsub.php\">Upload</a></li>\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/logout.php\">Logout</a></li>\n\t\t\t </ul>\n\t\t\t </div>\n</td></tr>
|
||||
\n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n <a
|
||||
href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\" height=\"32\"
|
||||
src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\" border=\"0\"
|
||||
/></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\" alt=\"IRC\"
|
||||
border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n\n\n<table width=\"94%\" border=\"0\" cellpadding=\"0\"
|
||||
cellspacing=\"0\">\n <tr bgcolor=\"#FFFFFF\">\n <th width=\"14%\" height=\"37\"
|
||||
bgcolor=\"#009BCA\" scope=\"row\"></th>\n \n <td width=\"83%\" height=\"37\"><center>\n<div
|
||||
id=\"container\"> \n \t<table class=\"tabel\" border=\"0\">\n \t<tr>
|
||||
<!-- table header -->\n \t<td class=\"tablecorner\"><img src=\"images/tl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"images/tr.gif\" /></td>\n </tr>\n <tr>\n \t<td></td>\n
|
||||
\ <td><div class=\"subItem\"><big><center>subliminal - </center></div>\n</td>\n
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table
|
||||
footer -->\n \t<td class=\"tablecorner\"><img src=\"images/bl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"images/br.gif\" /></td>\n </tr>\n </table>\n </div></td>\n
|
||||
\ </tr>\n<tr><td><img src=\"images/invisible.gif\"></td></tr>\n <tr>\n<th
|
||||
height=\"58\" bgcolor=\"#009BCA\" scope=\"row\"><div class=\"navbar\">\r\n<!--
|
||||
*********************************Start Menu******************************
|
||||
-->\r\n<div class=\"mainDiv\" >\r\n<div class=\"topItem\" >Personal</div>\r\n<div
|
||||
class=\"dropMenu\" ><!-- -->\r\n <div class=\"subMenu\" style=\"display:inline;\">\r\n
|
||||
\ <div class=\"subItem\"><a href=\"/panel_edit_profile.php\">Edit
|
||||
Profile</a></div>\r\n <div class=\"subItem\"><a href=\"/mydownloads.php\">My
|
||||
Downloads</a></div>\r\n <div class=\"subItem\"><a href=\"/following.php\">I'm
|
||||
Following</a></div>\r\n <div class=\"subItem\"><a href=\"/myviews.php\">I've
|
||||
Viewed</a></div>\r\n </div>\r\n</div>\r\n</div>\r\n<!-- *********************************End
|
||||
Menu****************************** --></th>\r\n <td bgcolor=\"#009BCA\"
|
||||
align=\"center\">\n<div id=\"container\"> \n \t<table class=\"tabel70\"
|
||||
border=0\">\n \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
|
||||
src=\"/images/tl.gif\" /></td>\n <td></td>\n <td
|
||||
class=\"tablecorner\"><img src=\"/images/tr.gif\" /></td>\n </tr>\n
|
||||
\ <tr>\n \t<td></td>\n <td>\n<table class=\"tabel\"
|
||||
border=\"0\" align=\"center\">\n <tr>\n <td align=\"center\" rowspan=\"10\"><img
|
||||
src=\"http://www.gravatar.com/avatar.php?gravatar_id=db74435d70e361342a19ce6de59db4ff&size=100&rating=X&border=FF0000\"
|
||||
width=\"100\" height=\"100\" /></td>\n <td></td>\n </tr>\n <tr>\n
|
||||
\ <td class=\"topItem\">Addict Since</td>\n <td>2015-06-30 16:35:35</td>\n
|
||||
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Web
|
||||
site</td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n
|
||||
\ <td class=\"topItem\">Signature</td>\n <td></td>\n <td></td>\n
|
||||
\ </tr>\n <tr>\n <td class=\"topItem\">Gender</td>\n <td>Male</td>\n
|
||||
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Downloads
|
||||
by User Today</td>\n <td><a href='mydownloads.php'>0 of 40</a></td>\n
|
||||
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Downloads
|
||||
from IP Today</td>\n <td><a href='log.php?mode=ip&ip=5.51.3.145'>5</a></td>\n
|
||||
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Class</td>\n
|
||||
\ \t<td>Regular</td>\n <td></td>\n </tr>\n <tr>\n <td
|
||||
class=\"topItem\">Last Seen</td>\n <td>2015-07-04 19:11:36</td>\n <td></td>\n
|
||||
\ </tr>\n <tr>\n <td class=\"topItem\">Last IP</td>\n <td><a
|
||||
href='log.php?mode=ip&ip=5.51.3.145'>5.51.3.145</a></td>\n <td></td>\n
|
||||
\ </tr>\n <tr>\n <td class=\"topItem\">Episodes created</td>\n
|
||||
\ <td>0</td>\n <td></td>\n </tr>\n </table>\n</td>\n
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table
|
||||
footer -->\n \t<td class=\"tablecorner\"><img src=\"/images/bl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"/images/br.gif\" /></td>\n </tr>\n </table>\n </div>\n</td>\n
|
||||
\ \n<tr bgcolor=\"#009BCA\">\n <th height=\"80\" scope=\"row\"><div
|
||||
class=\"navbar\">\n<!-- *********************************Start Menu******************************
|
||||
-->\n<div class=\"mainDiv\" >\n<div class=\"topItem\" >Messages</div> \n<div
|
||||
class=\"dropMenu\" ><!-- -->\n\t<div class=\"subMenu\" style=\"display:inline;\">\n\t\t<div
|
||||
class=\"subItem\"><a href=\"msginbox.php\">Inbox</a></div>\n\t <div
|
||||
class=\"subItem\"><a href=\"msgoutbox.php\">Outbox</a></div>\n\t\t<div class=\"subItem\"><a
|
||||
href=\"msgcreate.php\">Compose</a></div>\n\t</div>\n</div>\n</div>\n<!-- *********************************End
|
||||
Menu****************************** --></th>\n <td colspan=\"2\" bgcolor=\"#009BCA\"></td>\n
|
||||
\ </tr>\n <tr bgcolor=\"#009BCA\">\n <th height=\"74\" bgcolor=\"#009BCA\"
|
||||
scope=\"row\"><div class=\"navbar\">\n<!-- *********************************Start
|
||||
Menu****************************** -->\n<div class=\"mainDiv\" >\n<div class=\"topItem\"
|
||||
>RSS Feeds</div> \n<div class=\"dropMenu\" ><!-- -->\n\t<div class=\"subMenu\"
|
||||
style=\"display:inline;\">\n\t\t<div class=\"subItem\"><a href=\"/log.php?mode=news\">Latest
|
||||
News</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=hotspot\">New
|
||||
Releases</a></div>\n\t <div class=\"subItem\"><a href=\"/rss.php?mode=completed\">Latest
|
||||
Files</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=edited\">Latest
|
||||
Edited Files</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=translated\">Latest
|
||||
Started Translations</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=versions\">Latest
|
||||
New Versions</a></div>\n\t</div>\n</div>\n</div>\n<!-- *********************************End
|
||||
Menu****************************** --></th>\n <td colspan=\"2\" rowspan=\"5\"></td>\n
|
||||
\ </tr>\n <tr bgcolor=\"#FFFFFF\">\n <th height=\"75\" bgcolor=\"#009BCA\"
|
||||
scope=\"row\"><div class=\"navbar\">\n <!-- *********************************Start
|
||||
Menu****************************** -->\n <div class=\"mainDiv\" >\n <div
|
||||
class=\"topItem\" >Support Addic7ed</div> \n <div class=\"dropMenu\"
|
||||
><!-- -->\n <div class=\"subMenu\" style=\"display:inline;\">\n <div
|
||||
class=\"subItem\"><a href=\"/contact.php\">Donations</a></div>\n </div>\n
|
||||
\ </div>\n </div>\n <!-- *********************************End Menu******************************
|
||||
--></th>\n </tr>\n <tr bgcolor=\"#009BCA\">\n <th height=\"70\" scope=\"row\"><div
|
||||
class=\"navbar\">\n <!-- *********************************Start Menu******************************
|
||||
-->\n <div class=\"mainDiv\" >\n <div class=\"topItem\" >Help & Contact</div>
|
||||
\ \n <div class=\"dropMenu\" ><!-- -->\n <div class=\"subMenu\"
|
||||
style=\"display:inline;\">\n <div class=\"subItem\"><a href=\"http://www.sub-talk.net/\">Forums</a></div>\n
|
||||
\ <div class=\"subItem\"><a href=\"/contact.php\">Contact</a></div> \n
|
||||
\ </div>\n </div>\n </div>\n <!-- *********************************End
|
||||
Menu****************************** --></th>\n </tr>\n <tr bgcolor=\"#009BCA\">\n
|
||||
\ <th height=\"98\" scope=\"row\"><div class=\"navbar\">\n <!-- *********************************Start
|
||||
Menu****************************** -->\n <div class=\"mainDiv\" >\n <div
|
||||
class=\"topItem\" >Miscellaneous</div> \n <div class=\"dropMenu\"
|
||||
><!-- -->\n <div class=\"subMenu\" style=\"display:inline;\">\n <div
|
||||
class=\"subItem\"><a href=\"/shows-schedule\">Shows Schedule</a></div>\n <div
|
||||
class=\"subItem\"><a href=\"http://www.twitter.com/addic7ed\">Addic7ed@Twitter</a></div>\n
|
||||
\ <div class=\"subItem\"><a href=\"irc://irc.efnet.net/addic7ed\">Addic7ed
|
||||
on IRC</a></div>\n <div class=\"subItem\"><a href=\"http://chat.mibbit.com/?server=irc.umich.edu&channel=%23addic7ed\">Addic7ed
|
||||
- IRC (WebChat)</a></div>\n <div class=\"subItem\"><a href=\"http://www.facebook.com/pages/Addic7ed-Subtitles/103460216722?ref=nf\">Addic7ed
|
||||
on Facebook</a></div>\n </div>\n </div>\n </div>\n <!-- *********************************End
|
||||
Menu****************************** --></th>\n </tr>\n \n\n</table>\n<script
|
||||
type=\"text/javascript\" src=\"/xpmenuv21.js\"></script>\n</div>\n\n<center><table
|
||||
border=\"0\" width=\"90%\">\n<tr>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Addic7ed</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body>\n</html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,116 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: password=lanimilbus&username=subliminal&Submit=Log+in
|
||||
headers:
|
||||
Content-Length: ['53']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: POST
|
||||
uri: http://www.addic7ed.com/dologin.php
|
||||
response:
|
||||
body: {string: "\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com
|
||||
- For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum
|
||||
and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"
|
||||
title=\"default\" type=\"text/css\" media=\"screen\"/>\n</head>\n\n<body>\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
|
||||
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
|
||||
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
|
||||
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
|
||||
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
|
||||
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n<p align=\"center\">Wrong password </p>\n<center><table
|
||||
border=\"0\" width=\"90%\">\n<tr>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Addic7ed</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body>\n</html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
Set-Cookie: [PHPSESSID=d3o4eeisg08alu7niut1m3oh04; path=/]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,527 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?Submit=Search&search=The+Big+Bang+Theory
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
|
||||
\"The Big Bang Theory\" Subtitle Download - Addic7ed.com - For all those TV
|
||||
Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link
|
||||
href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
|
||||
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
|
||||
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
|
||||
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
|
||||
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
|
||||
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
|
||||
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
|
||||
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
|
||||
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
|
||||
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
|
||||
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
|
||||
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
|
||||
\ window.MGWidgetTitle13385 = \"Promoted
|
||||
Content\"; (function(){\n var
|
||||
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
|
||||
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
|
||||
c=iw[b];}\n catch(e){var
|
||||
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
|
||||
\ var
|
||||
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
|
||||
\ </script>\n
|
||||
\ </div>\n
|
||||
\ <!--
|
||||
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
|
||||
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
|
||||
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
|
||||
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
|
||||
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
|
||||
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
|
||||
type=\"text\" id=\"search\" size=\"50\" value=\"The Big Bang Theory\" class=\"inputCool\"/> \n
|
||||
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
|
||||
/></form><br />\n\n<b>187 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
|
||||
/>\n<center> <img src=\"http://www.addic7ed.com/images/database.png\"
|
||||
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/126\" >Show
|
||||
<i>The Big Bang Theory</i></a> ?</span></center><br /><br />\n\n<table
|
||||
class=\"tabel\" align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/0/Unaired_Pilot\"
|
||||
debug=\"27979\">The Big Bang Theory - 01x00 - Unaired Pilot</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/1/Pilot\"
|
||||
debug=\"2354\">The Big Bang Theory - 01x01 - Pilot</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/2/The_big_bran_hypothesis\"
|
||||
debug=\"2420\">The Big Bang Theory - 01x02 - The big bran hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/3/The_fuzzy_boots_collorary\"
|
||||
debug=\"2563\">The Big Bang Theory - 01x03 - The fuzzy boots collorary</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/4/The_luminous_fish_effect\"
|
||||
debug=\"2795\">The Big Bang Theory - 01x04 - The luminous fish effect</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/5/The_hamburger_postulate\"
|
||||
debug=\"2937\">The Big Bang Theory - 01x05 - The hamburger postulate</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/6/The_middle_earth_paradigm\"
|
||||
debug=\"3025\">The Big Bang Theory - 01x06 - The middle earth paradigm</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/7/The_dumpling_paradox\"
|
||||
debug=\"3161\">The Big Bang Theory - 01x07 - The dumpling paradox</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/8/The_grasshopper_experiment\"
|
||||
debug=\"3365\">The Big Bang Theory - 01x08 - The grasshopper experiment</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/9/The_Cooper_Hofstadter_polarization\"
|
||||
debug=\"7863\">The Big Bang Theory - 01x09 - The Cooper Hofstadter polarization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/10/The_Loobenfeld_decay\"
|
||||
debug=\"7943\">The Big Bang Theory - 01x10 - The Loobenfeld decay</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/11/The_pancake_batter_anomaly\"
|
||||
debug=\"8069\">The Big Bang Theory - 01x11 - The pancake batter anomaly</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/12/The_Jerusalem_duality\"
|
||||
debug=\"8415\">The Big Bang Theory - 01x12 - The Jerusalem duality</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/13/The_Bat_Jar_Conjceture\"
|
||||
debug=\"8561\">The Big Bang Theory - 01x13 - The Bat Jar Conjceture</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/14/The_Nerdvana_Annihilation\"
|
||||
debug=\"8672\">The Big Bang Theory - 01x14 - The Nerdvana Annihilation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/15/The_Shiksa_Indeterminacy\"
|
||||
debug=\"8792\">The Big Bang Theory - 01x15 - The Shiksa Indeterminacy</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/16/The_Peanut_Reaction\"
|
||||
debug=\"8979\">The Big Bang Theory - 01x16 - The Peanut Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/17/The_Tangerine_Factor\"
|
||||
debug=\"11375\">The Big Bang Theory - 01x17 - The Tangerine Factor</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/1/The_Bad_Fish_Paradigm\"
|
||||
debug=\"9593\">The Big Bang Theory - 02x01 - The Bad Fish Paradigm</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/2/The_Codpiece_Topology\"
|
||||
debug=\"9596\">The Big Bang Theory - 02x02 - The Codpiece Topology</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/3/The_Barbarian_Sublimation\"
|
||||
debug=\"10093\">The Big Bang Theory - 02x03 - The Barbarian Sublimation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/4/The_Griffin_Equivalency\"
|
||||
debug=\"10094\">The Big Bang Theory - 02x04 - The Griffin Equivalency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/5/The_Euclid_Alternative\"
|
||||
debug=\"10095\">The Big Bang Theory - 02x05 - The Euclid Alternative</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/6/The_Cooper-Nowitzki_Theorem\"
|
||||
debug=\"10096\">The Big Bang Theory - 02x06 - The Cooper-Nowitzki Theorem</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/7/The_Panty_Pi%C3%B1ata_Polarization\"
|
||||
debug=\"9600\">The Big Bang Theory - 02x07 - The Panty Pi\xF1ata Polarization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/8/The_Lizard-Spock_Expansion\"
|
||||
debug=\"10099\">The Big Bang Theory - 02x08 - The Lizard-Spock Expansion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/9/The_White_Asparagus_Triangulation\"
|
||||
debug=\"9602\">The Big Bang Theory - 02x09 - The White Asparagus Triangulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/10/The_Vartabedian_Conundrum\"
|
||||
debug=\"9605\">The Big Bang Theory - 02x10 - The Vartabedian Conundrum</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/11/The_Bath_Item_Gift_Hypothesis\"
|
||||
debug=\"9608\">The Big Bang Theory - 02x11 - The Bath Item Gift Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/12/The_Killer_Robot_Instability\"
|
||||
debug=\"10100\">The Big Bang Theory - 02x12 - The Killer Robot Instability</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/13/The_Friendship_Algorithm\"
|
||||
debug=\"10102\">The Big Bang Theory - 02x13 - The Friendship Algorithm</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/14/The_Financial_Permeability\"
|
||||
debug=\"10552\">The Big Bang Theory - 02x14 - The Financial Permeability</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/15/The_Maternal_Capacitance\"
|
||||
debug=\"10631\">The Big Bang Theory - 02x15 - The Maternal Capacitance</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/16/The_Cushion_Saturation\"
|
||||
debug=\"11144\">The Big Bang Theory - 02x16 - The Cushion Saturation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/17/The_Terminator_Decoupling\"
|
||||
debug=\"11339\">The Big Bang Theory - 02x17 - The Terminator Decoupling</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/18/The_Work_Song_Nanocluster\"
|
||||
debug=\"11418\">The Big Bang Theory - 02x18 - The Work Song Nanocluster</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/19/The_Dead_Hooker_Juxtaposition\"
|
||||
debug=\"11809\">The Big Bang Theory - 02x19 - The Dead Hooker Juxtaposition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/20/The_Hofstadter_Isotope\"
|
||||
debug=\"11989\">The Big Bang Theory - 02x20 - The Hofstadter Isotope</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/21/The_Vegas_Renormalization\"
|
||||
debug=\"12156\">The Big Bang Theory - 02x21 - The Vegas Renormalization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/22/The_Classified_Materials_Turbulence\"
|
||||
debug=\"12320\">The Big Bang Theory - 02x22 - The Classified Materials Turbulence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/23/The_Monopolar_Expedition\"
|
||||
debug=\"12769\">The Big Bang Theory - 02x23 - The Monopolar Expedition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/1/The_Electric_Can_Opener_Fluctuation\"
|
||||
debug=\"20679\">The Big Bang Theory - 03x01 - The Electric Can Opener Fluctuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/2/The_Jiminy_Conjecture\"
|
||||
debug=\"20792\">The Big Bang Theory - 03x02 - The Jiminy Conjecture</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\"
|
||||
debug=\"21229\">The Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/4/The_Pirate_Solution\"
|
||||
debug=\"21404\">The Big Bang Theory - 03x04 - The Pirate Solution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/5/The_Creepy_Candy_Coating_Corollary\"
|
||||
debug=\"22031\">The Big Bang Theory - 03x05 - The Creepy Candy Coating Corollary</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/6/The_Cornhusker_Vortex\"
|
||||
debug=\"22315\">The Big Bang Theory - 03x06 - The Cornhusker Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/7/The_Guitarist_Amplification\"
|
||||
debug=\"22479\">The Big Bang Theory - 03x07 - The Guitarist Amplification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/8/The_Adhesive_Duck_Deficiency\"
|
||||
debug=\"22733\">The Big Bang Theory - 03x08 - The Adhesive Duck Deficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/9/The_Vengeance_Formulation\"
|
||||
debug=\"23240\">The Big Bang Theory - 03x09 - The Vengeance Formulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/10/The_Gorilla_Experiment\"
|
||||
debug=\"23507\">The Big Bang Theory - 03x10 - The Gorilla Experiment</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/11/The_Maternal_Congruence\"
|
||||
debug=\"23645\">The Big Bang Theory - 03x11 - The Maternal Congruence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/12/The_Psychic_Vortex\"
|
||||
debug=\"23974\">The Big Bang Theory - 03x12 - The Psychic Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/13/The_Bozeman_Reaction\"
|
||||
debug=\"24082\">The Big Bang Theory - 03x13 - The Bozeman Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/14/The_Einstein_Approximation\"
|
||||
debug=\"24334\">The Big Bang Theory - 03x14 - The Einstein Approximation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/15/The_Large_Hadron_Collision\"
|
||||
debug=\"24335\">The Big Bang Theory - 03x15 - The Large Hadron Collision</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/16/The_Excelsior_Acquisition\"
|
||||
debug=\"24337\">The Big Bang Theory - 03x16 - The Excelsior Acquisition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/17/The_Precious_Fragmentation\"
|
||||
debug=\"24352\">The Big Bang Theory - 03x17 - The Precious Fragmentation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/18/The_Pants_Alternative\"
|
||||
debug=\"24339\">The Big Bang Theory - 03x18 - The Pants Alternative</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/19/The_Wheaton_Recurrence\"
|
||||
debug=\"25230\">The Big Bang Theory - 03x19 - The Wheaton Recurrence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/20/The_Spaghetti_Catalyst\"
|
||||
debug=\"26996\">The Big Bang Theory - 03x20 - The Spaghetti Catalyst</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/21/The_Plimpton_Stimulation\"
|
||||
debug=\"27303\">The Big Bang Theory - 03x21 - The Plimpton Stimulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/22/The_Staircase_Implementation\"
|
||||
debug=\"27531\">The Big Bang Theory - 03x22 - The Staircase Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/23/The_Lunar_Excitation\"
|
||||
debug=\"27712\">The Big Bang Theory - 03x23 - The Lunar Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/1/The_Robotic_Manipulation\"
|
||||
debug=\"32678\">The Big Bang Theory - 04x01 - The Robotic Manipulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/2/The_Cruciferous_Vegetable_Amplification\"
|
||||
debug=\"33395\">The Big Bang Theory - 04x02 - The Cruciferous Vegetable Amplification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/3/The_Zazzy_Substitution\"
|
||||
debug=\"33712\">The Big Bang Theory - 04x03 - The Zazzy Substitution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/4/The_Hot_Troll_Deviation\"
|
||||
debug=\"33944\">The Big Bang Theory - 04x04 - The Hot Troll Deviation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/5/The_Desperation_Emanation\"
|
||||
debug=\"34325\">The Big Bang Theory - 04x05 - The Desperation Emanation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/6/The_Irish_Pub_Formulation\"
|
||||
debug=\"34542\">The Big Bang Theory - 04x06 - The Irish Pub Formulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/7/The_Apology_Insufficiency\"
|
||||
debug=\"34799\">The Big Bang Theory - 04x07 - The Apology Insufficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/8/The_21_Second_Excitation\"
|
||||
debug=\"35076\">The Big Bang Theory - 04x08 - The 21 Second Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/9/The_Boyfriend_Complexity\"
|
||||
debug=\"35418\">The Big Bang Theory - 04x09 - The Boyfriend Complexity</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/10/The_Alien_Parasite_Hypothesis\"
|
||||
debug=\"36421\">The Big Bang Theory - 04x10 - The Alien Parasite Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/11/The_Justice_League_Recombination\"
|
||||
debug=\"36591\">The Big Bang Theory - 04x11 - The Justice League Recombination</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/12/The_Bus_Pants_Utilization\"
|
||||
debug=\"37789\">The Big Bang Theory - 04x12 - The Bus Pants Utilization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/13/The_Love_Car_Displacement\"
|
||||
debug=\"38686\">The Big Bang Theory - 04x13 - The Love Car Displacement</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/14/The_Thespian_Catalyst\"
|
||||
debug=\"39279\">The Big Bang Theory - 04x14 - The Thespian Catalyst</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/15/The_Benefactor_Factor\"
|
||||
debug=\"39696\">The Big Bang Theory - 04x15 - The Benefactor Factor</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/16/The_Cohabitation_Formulation\"
|
||||
debug=\"40060\">The Big Bang Theory - 04x16 - The Cohabitation Formulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_Toast_Derivation\"
|
||||
debug=\"40369\">The Big Bang Theory - 04x17 - The Toast Derivation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_toast_derivation\"
|
||||
debug=\"70619\">The Big Bang Theory - 04x17 - The toast derivation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/18/The_Prestidigitation_Approximation\"
|
||||
debug=\"41307\">The Big Bang Theory - 04x18 - The Prestidigitation Approximation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/19/The_Zarnecki_Incursion\"
|
||||
debug=\"42144\">The Big Bang Theory - 04x19 - The Zarnecki Incursion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/20/The_Herb_Garden_Germination\"
|
||||
debug=\"42506\">The Big Bang Theory - 04x20 - The Herb Garden Germination</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/21/The_Agreement_Dissection\"
|
||||
debug=\"43453\">The Big Bang Theory - 04x21 - The Agreement Dissection</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/22/The_Wildebeest_Implementation\"
|
||||
debug=\"43963\">The Big Bang Theory - 04x22 - The Wildebeest Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/23/The_Engagement_Reaction\"
|
||||
debug=\"44298\">The Big Bang Theory - 04x23 - The Engagement Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/24/The_Roommate_Transmogrification\"
|
||||
debug=\"45211\">The Big Bang Theory - 04x24 - The Roommate Transmogrification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/99/It_All_Started_With_A_Big_Bang\"
|
||||
debug=\"61471\">The Big Bang Theory - 04x99 - It All Started With A Big Bang</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/0/Access_All_Areas\"
|
||||
debug=\"61470\">The Big Bang Theory - 05x00 - Access All Areas</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/1/The_Skank_Reflex_Analysis\"
|
||||
debug=\"50098\">The Big Bang Theory - 05x01 - The Skank Reflex Analysis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/2/The_Infestation_Hypothesis\"
|
||||
debug=\"50100\">The Big Bang Theory - 05x02 - The Infestation Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/3/The_Pulled_Groin_Extrapolation\"
|
||||
debug=\"50464\">The Big Bang Theory - 05x03 - The Pulled Groin Extrapolation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/4/The_Wiggly_Finger_Catalyst\"
|
||||
debug=\"50787\">The Big Bang Theory - 05x04 - The Wiggly Finger Catalyst</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/5/The_Russian_Rocket_Reaction\"
|
||||
debug=\"51286\">The Big Bang Theory - 05x05 - The Russian Rocket Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/6/The_Rhinitis_Revelation\"
|
||||
debug=\"52502\">The Big Bang Theory - 05x06 - The Rhinitis Revelation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/7/The_Good_Guy_Fluctuation\"
|
||||
debug=\"53602\">The Big Bang Theory - 05x07 - The Good Guy Fluctuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/8/The_Isolation_Permutation\"
|
||||
debug=\"54479\">The Big Bang Theory - 05x08 - The Isolation Permutation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/9/The_Ornithophobia_Diffusion\"
|
||||
debug=\"54953\">The Big Bang Theory - 05x09 - The Ornithophobia Diffusion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/10/The_Flaming_Spittoon_Acquisition\"
|
||||
debug=\"55214\">The Big Bang Theory - 05x10 - The Flaming Spittoon Acquisition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/11/The_Speckerman_Recurrence\"
|
||||
debug=\"56382\">The Big Bang Theory - 05x11 - The Speckerman Recurrence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/12/The_Shiny_Trinket_Maneuver\"
|
||||
debug=\"58784\">The Big Bang Theory - 05x12 - The Shiny Trinket Maneuver</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/13/The_Recombination_Hypothesis\"
|
||||
debug=\"59003\">The Big Bang Theory - 05x13 - The Recombination Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/14/The_Beta_Test_Initiation\"
|
||||
debug=\"59196\">The Big Bang Theory - 05x14 - The Beta Test Initiation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/15/The_Friendship_Contraction\"
|
||||
debug=\"59388\">The Big Bang Theory - 05x15 - The Friendship Contraction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/16/The_Vacation_Solution\"
|
||||
debug=\"59650\">The Big Bang Theory - 05x16 - The Vacation Solution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/17/The_Rothman_Disintegration\"
|
||||
debug=\"59867\">The Big Bang Theory - 05x17 - The Rothman Disintegration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/18/The_Werewolf_Transformation\"
|
||||
debug=\"60147\">The Big Bang Theory - 05x18 - The Werewolf Transformation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/19/The_Weekend_Vortex\"
|
||||
debug=\"60580\">The Big Bang Theory - 05x19 - The Weekend Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/20/The_Transporter_Malfunction\"
|
||||
debug=\"61153\">The Big Bang Theory - 05x20 - The Transporter Malfunction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/21/The_Hawking_Excitation\"
|
||||
debug=\"61378\">The Big Bang Theory - 05x21 - The Hawking Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/22/The_Stag_Convergence\"
|
||||
debug=\"61967\">The Big Bang Theory - 05x22 - The Stag Convergence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/23/The_Launch_Acceleration\"
|
||||
debug=\"62208\">The Big Bang Theory - 05x23 - The Launch Acceleration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/24/The_Countdown_Reflection\"
|
||||
debug=\"62389\">The Big Bang Theory - 05x24 - The Countdown Reflection</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/1/The_Date_Night_Variable\"
|
||||
debug=\"67050\">The Big Bang Theory - 06x01 - The Date Night Variable</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/2/The_Decoupling_Fluctuation\"
|
||||
debug=\"67274\">The Big Bang Theory - 06x02 - The Decoupling Fluctuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/3/The_Higgs_Boson_Observation\"
|
||||
debug=\"67718\">The Big Bang Theory - 06x03 - The Higgs Boson Observation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/4/The_Re_Entry_Minimization\"
|
||||
debug=\"67942\">The Big Bang Theory - 06x04 - The Re Entry Minimization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/5/The_Holographic_Excitation\"
|
||||
debug=\"68166\">The Big Bang Theory - 06x05 - The Holographic Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/6/The_Extract_Obliteration\"
|
||||
debug=\"68409\">The Big Bang Theory - 06x06 - The Extract Obliteration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/7/The_Habitation_Configuration\"
|
||||
debug=\"68645\">The Big Bang Theory - 06x07 - The Habitation Configuration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/8/The_43_Peculiarity\"
|
||||
debug=\"68891\">The Big Bang Theory - 06x08 - The 43 Peculiarity</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/9/The_Parking_Spot_Escalation\"
|
||||
debug=\"69291\">The Big Bang Theory - 06x09 - The Parking Spot Escalation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/10/The_Fish_Guts_Displacement\"
|
||||
debug=\"69486\">The Big Bang Theory - 06x10 - The Fish Guts Displacement</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/11/The_Santa_Simulation\"
|
||||
debug=\"69725\">The Big Bang Theory - 06x11 - The Santa Simulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/12/The_Egg_Salad_Equivalency\"
|
||||
debug=\"70156\">The Big Bang Theory - 06x12 - The Egg Salad Equivalency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/13/The_Bakersfield_Expedition\"
|
||||
debug=\"70438\">The Big Bang Theory - 06x13 - The Bakersfield Expedition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/14/The_Cooper_Kripke_Inversion\"
|
||||
debug=\"71175\">The Big Bang Theory - 06x14 - The Cooper Kripke Inversion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/15/The_Spoiler_Alert_Segmentation\"
|
||||
debug=\"71445\">The Big Bang Theory - 06x15 - The Spoiler Alert Segmentation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/16/The_Tangible_Affection_Proof\"
|
||||
debug=\"71783\">The Big Bang Theory - 06x16 - The Tangible Affection Proof</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/17/The_Monster_Isolation\"
|
||||
debug=\"72089\">The Big Bang Theory - 06x17 - The Monster Isolation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/18/The_Contractual_Obligation_Implementation\"
|
||||
debug=\"72726\">The Big Bang Theory - 06x18 - The Contractual Obligation Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/19/The_Closet_Reconfiguration\"
|
||||
debug=\"73084\">The Big Bang Theory - 06x19 - The Closet Reconfiguration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/20/The_Tenure_Turbulence\"
|
||||
debug=\"73969\">The Big Bang Theory - 06x20 - The Tenure Turbulence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/21/The_Closure_Alternative\"
|
||||
debug=\"74818\">The Big Bang Theory - 06x21 - The Closure Alternative</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/22/The_Proton_Resurgence\"
|
||||
debug=\"75066\">The Big Bang Theory - 06x22 - The Proton Resurgence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/23/The_Love_Spell_Potential\"
|
||||
debug=\"75335\">The Big Bang Theory - 06x23 - The Love Spell Potential</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/24/The_Bon_Voyage_Reaction\"
|
||||
debug=\"75567\">The Big Bang Theory - 06x24 - The Bon Voyage Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/1/The_Hofstadter_Insufficiency\"
|
||||
debug=\"79523\">The Big Bang Theory - 07x01 - The Hofstadter Insufficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/2/The_Deception_Verification\"
|
||||
debug=\"79524\">The Big Bang Theory - 07x02 - The Deception Verification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/3/The_Scavenger_Vortex\"
|
||||
debug=\"79722\">The Big Bang Theory - 07x03 - The Scavenger Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/4/The_Raiders_Minimization\"
|
||||
debug=\"80031\">The Big Bang Theory - 07x04 - The Raiders Minimization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/5/The_Workplace_Proximity\"
|
||||
debug=\"80254\">The Big Bang Theory - 07x05 - The Workplace Proximity</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/6/The_Romance_Resonance\"
|
||||
debug=\"80518\">The Big Bang Theory - 07x06 - The Romance Resonance</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/7/The_Proton_Displacement\"
|
||||
debug=\"81067\">The Big Bang Theory - 07x07 - The Proton Displacement</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/8/The_Itchy_Brain_Simulation\"
|
||||
debug=\"81272\">The Big Bang Theory - 07x08 - The Itchy Brain Simulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/9/The_Thanksgiving_Decoupling\"
|
||||
debug=\"81525\">The Big Bang Theory - 07x09 - The Thanksgiving Decoupling</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/10/The_Discovery_Dissipation\"
|
||||
debug=\"82096\">The Big Bang Theory - 07x10 - The Discovery Dissipation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/11/The_Cooper_Extraction\"
|
||||
debug=\"82274\">The Big Bang Theory - 07x11 - The Cooper Extraction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/12/The_Hesitation_Ramification\"
|
||||
debug=\"82674\">The Big Bang Theory - 07x12 - The Hesitation Ramification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/13/The_Occupation_Recalibration\"
|
||||
debug=\"82916\">The Big Bang Theory - 07x13 - The Occupation Recalibration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/14/The_Convention_Conundrum\"
|
||||
debug=\"83752\">The Big Bang Theory - 07x14 - The Convention Conundrum</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/15/The_Locomotive_Manipulation\"
|
||||
debug=\"83978\">The Big Bang Theory - 07x15 - The Locomotive Manipulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/16/The_Table_Polarization\"
|
||||
debug=\"84736\">The Big Bang Theory - 07x16 - The Table Polarization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/17/The_Friendship_Turbulence\"
|
||||
debug=\"85106\">The Big Bang Theory - 07x17 - The Friendship Turbulence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/18/The_Mommy_Observation\"
|
||||
debug=\"85542\">The Big Bang Theory - 07x18 - The Mommy Observation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/19/The_Indecision_Amalgamation\"
|
||||
debug=\"86494\">The Big Bang Theory - 07x19 - The Indecision Amalgamation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/20/The_Relationship_Diremption\"
|
||||
debug=\"86744\">The Big Bang Theory - 07x20 - The Relationship Diremption</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/21/The_Anything_Can_Happen_Recurrence\"
|
||||
debug=\"87403\">The Big Bang Theory - 07x21 - The Anything Can Happen Recurrence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/22/The_Proton_Transmogrification\"
|
||||
debug=\"87725\">The Big Bang Theory - 07x22 - The Proton Transmogrification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/23/The_Gorilla_Dissolution\"
|
||||
debug=\"87935\">The Big Bang Theory - 07x23 - The Gorilla Dissolution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/24/The_Status_Quo_Combustion\"
|
||||
debug=\"88184\">The Big Bang Theory - 07x24 - The Status Quo Combustion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/1/The_Locomotion_Interruption\"
|
||||
debug=\"92140\">The Big Bang Theory - 08x01 - The Locomotion Interruption</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/2/The_Junior_Professor_Solution\"
|
||||
debug=\"92142\">The Big Bang Theory - 08x02 - The Junior Professor Solution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/3/The_First_Pitch_Insufficiency\"
|
||||
debug=\"92307\">The Big Bang Theory - 08x03 - The First Pitch Insufficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/4/The_Hook-up_Reverberation\"
|
||||
debug=\"92545\">The Big Bang Theory - 08x04 - The Hook-up Reverberation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/5/The_Focus_Attenuation\"
|
||||
debug=\"92757\">The Big Bang Theory - 08x05 - The Focus Attenuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/6/The_Expedition_Approximation\"
|
||||
debug=\"93043\">The Big Bang Theory - 08x06 - The Expedition Approximation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/7/The_Misinterpretation_Agitation\"
|
||||
debug=\"93361\">The Big Bang Theory - 08x07 - The Misinterpretation Agitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/8/The_Prom_Equivalency\"
|
||||
debug=\"93612\">The Big Bang Theory - 08x08 - The Prom Equivalency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/9/The_Septum_Deviation\"
|
||||
debug=\"93873\">The Big Bang Theory - 08x09 - The Septum Deviation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/10/The_Champagne_Reflection\"
|
||||
debug=\"94116\">The Big Bang Theory - 08x10 - The Champagne Reflection</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/11/The_Clean_Room_Infiltration\"
|
||||
debug=\"94911\">The Big Bang Theory - 08x11 - The Clean Room Infiltration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/12/The_Space_Probe_Disintegration\"
|
||||
debug=\"95594\">The Big Bang Theory - 08x12 - The Space Probe Disintegration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/13/The_Anxiety_Optimization\"
|
||||
debug=\"96388\">The Big Bang Theory - 08x13 - The Anxiety Optimization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/14/The_Troll_Manifestation\"
|
||||
debug=\"96654\">The Big Bang Theory - 08x14 - The Troll Manifestation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/15/The_Comic_Book_Store_Regeneration\"
|
||||
debug=\"97289\">The Big Bang Theory - 08x15 - The Comic Book Store Regeneration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/16/The_Intimacy_Acceleration\"
|
||||
debug=\"97610\">The Big Bang Theory - 08x16 - The Intimacy Acceleration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/17/The_Colonization_Application\"
|
||||
debug=\"97863\">The Big Bang Theory - 08x17 - The Colonization Application</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/18/The_Leftover_Thermalization\"
|
||||
debug=\"98196\">The Big Bang Theory - 08x18 - The Leftover Thermalization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/19/The_Skywalker_Incursion\"
|
||||
debug=\"99011\">The Big Bang Theory - 08x19 - The Skywalker Incursion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/20/The_Fortification_Implementation\"
|
||||
debug=\"99310\">The Big Bang Theory - 08x20 - The Fortification Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/21/The_Communication_Deterioration\"
|
||||
debug=\"99595\">The Big Bang Theory - 08x21 - The Communication Deterioration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/22/The_Graduation_Transmission\"
|
||||
debug=\"99816\">The Big Bang Theory - 08x22 - The Graduation Transmission</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/23/The_Maternal_Combustion\"
|
||||
debug=\"100083\">The Big Bang Theory - 08x23 - The Maternal Combustion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/24/The_Commitment_Determination\"
|
||||
debug=\"100419\">The Big Bang Theory - 08x24 - The Commitment Determination</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table
|
||||
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
|
||||
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
|
||||
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
|
||||
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
Set-Cookie: [PHPSESSID=j0e42neln9hhc3oi0um9k4mkr6; path=/]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,153 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?Submit=Search&search=The+Big+How+I+Met+Your+Mother
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
|
||||
\"The Big How I Met Your Mother\" Subtitle Download - Addic7ed.com - For all
|
||||
those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more
|
||||
-</title>\n<link href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
|
||||
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
|
||||
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
|
||||
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
|
||||
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
|
||||
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
|
||||
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
|
||||
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
|
||||
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
|
||||
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
|
||||
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
|
||||
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
|
||||
\ window.MGWidgetTitle13385 = \"Promoted
|
||||
Content\"; (function(){\n var
|
||||
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
|
||||
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
|
||||
c=iw[b];}\n catch(e){var
|
||||
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
|
||||
\ var
|
||||
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
|
||||
\ </script>\n
|
||||
\ </div>\n
|
||||
\ <!--
|
||||
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
|
||||
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
|
||||
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
|
||||
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
|
||||
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
|
||||
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
|
||||
type=\"text\" id=\"search\" size=\"50\" value=\"The Big How I Met Your Mother\"
|
||||
class=\"inputCool\"/> \n <input name=\"Submit\" type=\"submit\" class=\"coolBoton\"
|
||||
value=\"Search\" /></form><br />\n\n<b>1 results found</b> </div><br />\n\n<br
|
||||
/>\n\t<center>\n\n</center>\n<br />\n\n<table class=\"tabel\" align=\"center\"
|
||||
width=\"80%\" border=\"0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\"
|
||||
debug=\"21229\">The Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table
|
||||
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
|
||||
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
|
||||
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
|
||||
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:40 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
Set-Cookie: [PHPSESSID=2mcc47dmkf0qb4ffmvushb3pl0; path=/]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,533 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?Submit=Search&search=The+Big+Bang
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
|
||||
\"The Big Bang\" Subtitle Download - Addic7ed.com - For all those TV Series
|
||||
Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link
|
||||
href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
|
||||
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
|
||||
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
|
||||
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
|
||||
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
|
||||
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
|
||||
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
|
||||
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
|
||||
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
|
||||
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
|
||||
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
|
||||
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
|
||||
\ window.MGWidgetTitle13385 = \"Promoted
|
||||
Content\"; (function(){\n var
|
||||
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
|
||||
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
|
||||
c=iw[b];}\n catch(e){var
|
||||
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
|
||||
\ var
|
||||
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
|
||||
\ </script>\n
|
||||
\ </div>\n
|
||||
\ <!--
|
||||
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
|
||||
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
|
||||
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
|
||||
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
|
||||
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
|
||||
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
|
||||
type=\"text\" id=\"search\" size=\"50\" value=\"The Big Bang\" class=\"inputCool\"/> \n
|
||||
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
|
||||
/></form><br />\n\n<b>190 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
|
||||
/>\n<center> <img src=\"http://www.addic7ed.com/images/database.png\"
|
||||
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/126\" >Show
|
||||
<i>The Big Bang Theory</i></a> ?</span></center><br /><br />\n\n<table
|
||||
class=\"tabel\" align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/0/Unaired_Pilot\"
|
||||
debug=\"27979\">The Big Bang Theory - 01x00 - Unaired Pilot</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/1/Pilot\"
|
||||
debug=\"2354\">The Big Bang Theory - 01x01 - Pilot</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/2/The_big_bran_hypothesis\"
|
||||
debug=\"2420\">The Big Bang Theory - 01x02 - The big bran hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/3/The_fuzzy_boots_collorary\"
|
||||
debug=\"2563\">The Big Bang Theory - 01x03 - The fuzzy boots collorary</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/4/The_luminous_fish_effect\"
|
||||
debug=\"2795\">The Big Bang Theory - 01x04 - The luminous fish effect</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/5/The_hamburger_postulate\"
|
||||
debug=\"2937\">The Big Bang Theory - 01x05 - The hamburger postulate</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/6/The_middle_earth_paradigm\"
|
||||
debug=\"3025\">The Big Bang Theory - 01x06 - The middle earth paradigm</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/7/The_dumpling_paradox\"
|
||||
debug=\"3161\">The Big Bang Theory - 01x07 - The dumpling paradox</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/8/The_grasshopper_experiment\"
|
||||
debug=\"3365\">The Big Bang Theory - 01x08 - The grasshopper experiment</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/9/The_Cooper_Hofstadter_polarization\"
|
||||
debug=\"7863\">The Big Bang Theory - 01x09 - The Cooper Hofstadter polarization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/10/The_Loobenfeld_decay\"
|
||||
debug=\"7943\">The Big Bang Theory - 01x10 - The Loobenfeld decay</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/11/The_pancake_batter_anomaly\"
|
||||
debug=\"8069\">The Big Bang Theory - 01x11 - The pancake batter anomaly</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/12/The_Jerusalem_duality\"
|
||||
debug=\"8415\">The Big Bang Theory - 01x12 - The Jerusalem duality</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/13/The_Bat_Jar_Conjceture\"
|
||||
debug=\"8561\">The Big Bang Theory - 01x13 - The Bat Jar Conjceture</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/14/The_Nerdvana_Annihilation\"
|
||||
debug=\"8672\">The Big Bang Theory - 01x14 - The Nerdvana Annihilation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/15/The_Shiksa_Indeterminacy\"
|
||||
debug=\"8792\">The Big Bang Theory - 01x15 - The Shiksa Indeterminacy</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/16/The_Peanut_Reaction\"
|
||||
debug=\"8979\">The Big Bang Theory - 01x16 - The Peanut Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/17/The_Tangerine_Factor\"
|
||||
debug=\"11375\">The Big Bang Theory - 01x17 - The Tangerine Factor</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/1/The_Bad_Fish_Paradigm\"
|
||||
debug=\"9593\">The Big Bang Theory - 02x01 - The Bad Fish Paradigm</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/2/The_Codpiece_Topology\"
|
||||
debug=\"9596\">The Big Bang Theory - 02x02 - The Codpiece Topology</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/3/The_Barbarian_Sublimation\"
|
||||
debug=\"10093\">The Big Bang Theory - 02x03 - The Barbarian Sublimation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/4/The_Griffin_Equivalency\"
|
||||
debug=\"10094\">The Big Bang Theory - 02x04 - The Griffin Equivalency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/5/The_Euclid_Alternative\"
|
||||
debug=\"10095\">The Big Bang Theory - 02x05 - The Euclid Alternative</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/6/The_Cooper-Nowitzki_Theorem\"
|
||||
debug=\"10096\">The Big Bang Theory - 02x06 - The Cooper-Nowitzki Theorem</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/7/The_Panty_Pi%C3%B1ata_Polarization\"
|
||||
debug=\"9600\">The Big Bang Theory - 02x07 - The Panty Pi\xF1ata Polarization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/8/The_Lizard-Spock_Expansion\"
|
||||
debug=\"10099\">The Big Bang Theory - 02x08 - The Lizard-Spock Expansion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/9/The_White_Asparagus_Triangulation\"
|
||||
debug=\"9602\">The Big Bang Theory - 02x09 - The White Asparagus Triangulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/10/The_Vartabedian_Conundrum\"
|
||||
debug=\"9605\">The Big Bang Theory - 02x10 - The Vartabedian Conundrum</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/11/The_Bath_Item_Gift_Hypothesis\"
|
||||
debug=\"9608\">The Big Bang Theory - 02x11 - The Bath Item Gift Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/12/The_Killer_Robot_Instability\"
|
||||
debug=\"10100\">The Big Bang Theory - 02x12 - The Killer Robot Instability</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/13/The_Friendship_Algorithm\"
|
||||
debug=\"10102\">The Big Bang Theory - 02x13 - The Friendship Algorithm</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/14/The_Financial_Permeability\"
|
||||
debug=\"10552\">The Big Bang Theory - 02x14 - The Financial Permeability</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/15/The_Maternal_Capacitance\"
|
||||
debug=\"10631\">The Big Bang Theory - 02x15 - The Maternal Capacitance</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/16/The_Cushion_Saturation\"
|
||||
debug=\"11144\">The Big Bang Theory - 02x16 - The Cushion Saturation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/17/The_Terminator_Decoupling\"
|
||||
debug=\"11339\">The Big Bang Theory - 02x17 - The Terminator Decoupling</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/18/The_Work_Song_Nanocluster\"
|
||||
debug=\"11418\">The Big Bang Theory - 02x18 - The Work Song Nanocluster</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/19/The_Dead_Hooker_Juxtaposition\"
|
||||
debug=\"11809\">The Big Bang Theory - 02x19 - The Dead Hooker Juxtaposition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/20/The_Hofstadter_Isotope\"
|
||||
debug=\"11989\">The Big Bang Theory - 02x20 - The Hofstadter Isotope</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/21/The_Vegas_Renormalization\"
|
||||
debug=\"12156\">The Big Bang Theory - 02x21 - The Vegas Renormalization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/22/The_Classified_Materials_Turbulence\"
|
||||
debug=\"12320\">The Big Bang Theory - 02x22 - The Classified Materials Turbulence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/23/The_Monopolar_Expedition\"
|
||||
debug=\"12769\">The Big Bang Theory - 02x23 - The Monopolar Expedition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/1/The_Electric_Can_Opener_Fluctuation\"
|
||||
debug=\"20679\">The Big Bang Theory - 03x01 - The Electric Can Opener Fluctuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/2/The_Jiminy_Conjecture\"
|
||||
debug=\"20792\">The Big Bang Theory - 03x02 - The Jiminy Conjecture</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\"
|
||||
debug=\"21229\">The Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/4/The_Pirate_Solution\"
|
||||
debug=\"21404\">The Big Bang Theory - 03x04 - The Pirate Solution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/5/The_Creepy_Candy_Coating_Corollary\"
|
||||
debug=\"22031\">The Big Bang Theory - 03x05 - The Creepy Candy Coating Corollary</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/6/The_Cornhusker_Vortex\"
|
||||
debug=\"22315\">The Big Bang Theory - 03x06 - The Cornhusker Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/7/The_Guitarist_Amplification\"
|
||||
debug=\"22479\">The Big Bang Theory - 03x07 - The Guitarist Amplification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/8/The_Adhesive_Duck_Deficiency\"
|
||||
debug=\"22733\">The Big Bang Theory - 03x08 - The Adhesive Duck Deficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/9/The_Vengeance_Formulation\"
|
||||
debug=\"23240\">The Big Bang Theory - 03x09 - The Vengeance Formulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/10/The_Gorilla_Experiment\"
|
||||
debug=\"23507\">The Big Bang Theory - 03x10 - The Gorilla Experiment</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/11/The_Maternal_Congruence\"
|
||||
debug=\"23645\">The Big Bang Theory - 03x11 - The Maternal Congruence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/12/The_Psychic_Vortex\"
|
||||
debug=\"23974\">The Big Bang Theory - 03x12 - The Psychic Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/13/The_Bozeman_Reaction\"
|
||||
debug=\"24082\">The Big Bang Theory - 03x13 - The Bozeman Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/14/The_Einstein_Approximation\"
|
||||
debug=\"24334\">The Big Bang Theory - 03x14 - The Einstein Approximation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/15/The_Large_Hadron_Collision\"
|
||||
debug=\"24335\">The Big Bang Theory - 03x15 - The Large Hadron Collision</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/16/The_Excelsior_Acquisition\"
|
||||
debug=\"24337\">The Big Bang Theory - 03x16 - The Excelsior Acquisition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/17/The_Precious_Fragmentation\"
|
||||
debug=\"24352\">The Big Bang Theory - 03x17 - The Precious Fragmentation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/18/The_Pants_Alternative\"
|
||||
debug=\"24339\">The Big Bang Theory - 03x18 - The Pants Alternative</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/19/The_Wheaton_Recurrence\"
|
||||
debug=\"25230\">The Big Bang Theory - 03x19 - The Wheaton Recurrence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/20/The_Spaghetti_Catalyst\"
|
||||
debug=\"26996\">The Big Bang Theory - 03x20 - The Spaghetti Catalyst</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/21/The_Plimpton_Stimulation\"
|
||||
debug=\"27303\">The Big Bang Theory - 03x21 - The Plimpton Stimulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/22/The_Staircase_Implementation\"
|
||||
debug=\"27531\">The Big Bang Theory - 03x22 - The Staircase Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/23/The_Lunar_Excitation\"
|
||||
debug=\"27712\">The Big Bang Theory - 03x23 - The Lunar Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/1/The_Robotic_Manipulation\"
|
||||
debug=\"32678\">The Big Bang Theory - 04x01 - The Robotic Manipulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/2/The_Cruciferous_Vegetable_Amplification\"
|
||||
debug=\"33395\">The Big Bang Theory - 04x02 - The Cruciferous Vegetable Amplification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/3/The_Zazzy_Substitution\"
|
||||
debug=\"33712\">The Big Bang Theory - 04x03 - The Zazzy Substitution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/4/The_Hot_Troll_Deviation\"
|
||||
debug=\"33944\">The Big Bang Theory - 04x04 - The Hot Troll Deviation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/5/The_Desperation_Emanation\"
|
||||
debug=\"34325\">The Big Bang Theory - 04x05 - The Desperation Emanation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/6/The_Irish_Pub_Formulation\"
|
||||
debug=\"34542\">The Big Bang Theory - 04x06 - The Irish Pub Formulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/7/The_Apology_Insufficiency\"
|
||||
debug=\"34799\">The Big Bang Theory - 04x07 - The Apology Insufficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/8/The_21_Second_Excitation\"
|
||||
debug=\"35076\">The Big Bang Theory - 04x08 - The 21 Second Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/9/The_Boyfriend_Complexity\"
|
||||
debug=\"35418\">The Big Bang Theory - 04x09 - The Boyfriend Complexity</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/10/The_Alien_Parasite_Hypothesis\"
|
||||
debug=\"36421\">The Big Bang Theory - 04x10 - The Alien Parasite Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/11/The_Justice_League_Recombination\"
|
||||
debug=\"36591\">The Big Bang Theory - 04x11 - The Justice League Recombination</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/12/The_Bus_Pants_Utilization\"
|
||||
debug=\"37789\">The Big Bang Theory - 04x12 - The Bus Pants Utilization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/13/The_Love_Car_Displacement\"
|
||||
debug=\"38686\">The Big Bang Theory - 04x13 - The Love Car Displacement</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/14/The_Thespian_Catalyst\"
|
||||
debug=\"39279\">The Big Bang Theory - 04x14 - The Thespian Catalyst</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/15/The_Benefactor_Factor\"
|
||||
debug=\"39696\">The Big Bang Theory - 04x15 - The Benefactor Factor</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/16/The_Cohabitation_Formulation\"
|
||||
debug=\"40060\">The Big Bang Theory - 04x16 - The Cohabitation Formulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_Toast_Derivation\"
|
||||
debug=\"40369\">The Big Bang Theory - 04x17 - The Toast Derivation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_toast_derivation\"
|
||||
debug=\"70619\">The Big Bang Theory - 04x17 - The toast derivation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/18/The_Prestidigitation_Approximation\"
|
||||
debug=\"41307\">The Big Bang Theory - 04x18 - The Prestidigitation Approximation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/19/The_Zarnecki_Incursion\"
|
||||
debug=\"42144\">The Big Bang Theory - 04x19 - The Zarnecki Incursion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/20/The_Herb_Garden_Germination\"
|
||||
debug=\"42506\">The Big Bang Theory - 04x20 - The Herb Garden Germination</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/21/The_Agreement_Dissection\"
|
||||
debug=\"43453\">The Big Bang Theory - 04x21 - The Agreement Dissection</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/22/The_Wildebeest_Implementation\"
|
||||
debug=\"43963\">The Big Bang Theory - 04x22 - The Wildebeest Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/23/The_Engagement_Reaction\"
|
||||
debug=\"44298\">The Big Bang Theory - 04x23 - The Engagement Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/24/The_Roommate_Transmogrification\"
|
||||
debug=\"45211\">The Big Bang Theory - 04x24 - The Roommate Transmogrification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/99/It_All_Started_With_A_Big_Bang\"
|
||||
debug=\"61471\">The Big Bang Theory - 04x99 - It All Started With A Big Bang</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/0/Access_All_Areas\"
|
||||
debug=\"61470\">The Big Bang Theory - 05x00 - Access All Areas</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/1/The_Skank_Reflex_Analysis\"
|
||||
debug=\"50098\">The Big Bang Theory - 05x01 - The Skank Reflex Analysis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/2/The_Infestation_Hypothesis\"
|
||||
debug=\"50100\">The Big Bang Theory - 05x02 - The Infestation Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/3/The_Pulled_Groin_Extrapolation\"
|
||||
debug=\"50464\">The Big Bang Theory - 05x03 - The Pulled Groin Extrapolation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/4/The_Wiggly_Finger_Catalyst\"
|
||||
debug=\"50787\">The Big Bang Theory - 05x04 - The Wiggly Finger Catalyst</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/5/The_Russian_Rocket_Reaction\"
|
||||
debug=\"51286\">The Big Bang Theory - 05x05 - The Russian Rocket Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/6/The_Rhinitis_Revelation\"
|
||||
debug=\"52502\">The Big Bang Theory - 05x06 - The Rhinitis Revelation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/7/The_Good_Guy_Fluctuation\"
|
||||
debug=\"53602\">The Big Bang Theory - 05x07 - The Good Guy Fluctuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/8/The_Isolation_Permutation\"
|
||||
debug=\"54479\">The Big Bang Theory - 05x08 - The Isolation Permutation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/9/The_Ornithophobia_Diffusion\"
|
||||
debug=\"54953\">The Big Bang Theory - 05x09 - The Ornithophobia Diffusion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/10/The_Flaming_Spittoon_Acquisition\"
|
||||
debug=\"55214\">The Big Bang Theory - 05x10 - The Flaming Spittoon Acquisition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/11/The_Speckerman_Recurrence\"
|
||||
debug=\"56382\">The Big Bang Theory - 05x11 - The Speckerman Recurrence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/12/The_Shiny_Trinket_Maneuver\"
|
||||
debug=\"58784\">The Big Bang Theory - 05x12 - The Shiny Trinket Maneuver</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/13/The_Recombination_Hypothesis\"
|
||||
debug=\"59003\">The Big Bang Theory - 05x13 - The Recombination Hypothesis</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/14/The_Beta_Test_Initiation\"
|
||||
debug=\"59196\">The Big Bang Theory - 05x14 - The Beta Test Initiation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/15/The_Friendship_Contraction\"
|
||||
debug=\"59388\">The Big Bang Theory - 05x15 - The Friendship Contraction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/16/The_Vacation_Solution\"
|
||||
debug=\"59650\">The Big Bang Theory - 05x16 - The Vacation Solution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/17/The_Rothman_Disintegration\"
|
||||
debug=\"59867\">The Big Bang Theory - 05x17 - The Rothman Disintegration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/18/The_Werewolf_Transformation\"
|
||||
debug=\"60147\">The Big Bang Theory - 05x18 - The Werewolf Transformation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/19/The_Weekend_Vortex\"
|
||||
debug=\"60580\">The Big Bang Theory - 05x19 - The Weekend Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/20/The_Transporter_Malfunction\"
|
||||
debug=\"61153\">The Big Bang Theory - 05x20 - The Transporter Malfunction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/21/The_Hawking_Excitation\"
|
||||
debug=\"61378\">The Big Bang Theory - 05x21 - The Hawking Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/22/The_Stag_Convergence\"
|
||||
debug=\"61967\">The Big Bang Theory - 05x22 - The Stag Convergence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/23/The_Launch_Acceleration\"
|
||||
debug=\"62208\">The Big Bang Theory - 05x23 - The Launch Acceleration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/24/The_Countdown_Reflection\"
|
||||
debug=\"62389\">The Big Bang Theory - 05x24 - The Countdown Reflection</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/1/The_Date_Night_Variable\"
|
||||
debug=\"67050\">The Big Bang Theory - 06x01 - The Date Night Variable</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/2/The_Decoupling_Fluctuation\"
|
||||
debug=\"67274\">The Big Bang Theory - 06x02 - The Decoupling Fluctuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/3/The_Higgs_Boson_Observation\"
|
||||
debug=\"67718\">The Big Bang Theory - 06x03 - The Higgs Boson Observation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/4/The_Re_Entry_Minimization\"
|
||||
debug=\"67942\">The Big Bang Theory - 06x04 - The Re Entry Minimization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/5/The_Holographic_Excitation\"
|
||||
debug=\"68166\">The Big Bang Theory - 06x05 - The Holographic Excitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/6/The_Extract_Obliteration\"
|
||||
debug=\"68409\">The Big Bang Theory - 06x06 - The Extract Obliteration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/7/The_Habitation_Configuration\"
|
||||
debug=\"68645\">The Big Bang Theory - 06x07 - The Habitation Configuration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/8/The_43_Peculiarity\"
|
||||
debug=\"68891\">The Big Bang Theory - 06x08 - The 43 Peculiarity</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/9/The_Parking_Spot_Escalation\"
|
||||
debug=\"69291\">The Big Bang Theory - 06x09 - The Parking Spot Escalation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/10/The_Fish_Guts_Displacement\"
|
||||
debug=\"69486\">The Big Bang Theory - 06x10 - The Fish Guts Displacement</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/11/The_Santa_Simulation\"
|
||||
debug=\"69725\">The Big Bang Theory - 06x11 - The Santa Simulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/12/The_Egg_Salad_Equivalency\"
|
||||
debug=\"70156\">The Big Bang Theory - 06x12 - The Egg Salad Equivalency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/13/The_Bakersfield_Expedition\"
|
||||
debug=\"70438\">The Big Bang Theory - 06x13 - The Bakersfield Expedition</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/14/The_Cooper_Kripke_Inversion\"
|
||||
debug=\"71175\">The Big Bang Theory - 06x14 - The Cooper Kripke Inversion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/15/The_Spoiler_Alert_Segmentation\"
|
||||
debug=\"71445\">The Big Bang Theory - 06x15 - The Spoiler Alert Segmentation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/16/The_Tangible_Affection_Proof\"
|
||||
debug=\"71783\">The Big Bang Theory - 06x16 - The Tangible Affection Proof</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/17/The_Monster_Isolation\"
|
||||
debug=\"72089\">The Big Bang Theory - 06x17 - The Monster Isolation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/18/The_Contractual_Obligation_Implementation\"
|
||||
debug=\"72726\">The Big Bang Theory - 06x18 - The Contractual Obligation Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/19/The_Closet_Reconfiguration\"
|
||||
debug=\"73084\">The Big Bang Theory - 06x19 - The Closet Reconfiguration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/20/The_Tenure_Turbulence\"
|
||||
debug=\"73969\">The Big Bang Theory - 06x20 - The Tenure Turbulence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/21/The_Closure_Alternative\"
|
||||
debug=\"74818\">The Big Bang Theory - 06x21 - The Closure Alternative</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/22/The_Proton_Resurgence\"
|
||||
debug=\"75066\">The Big Bang Theory - 06x22 - The Proton Resurgence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/23/The_Love_Spell_Potential\"
|
||||
debug=\"75335\">The Big Bang Theory - 06x23 - The Love Spell Potential</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/24/The_Bon_Voyage_Reaction\"
|
||||
debug=\"75567\">The Big Bang Theory - 06x24 - The Bon Voyage Reaction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/1/The_Hofstadter_Insufficiency\"
|
||||
debug=\"79523\">The Big Bang Theory - 07x01 - The Hofstadter Insufficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/2/The_Deception_Verification\"
|
||||
debug=\"79524\">The Big Bang Theory - 07x02 - The Deception Verification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/3/The_Scavenger_Vortex\"
|
||||
debug=\"79722\">The Big Bang Theory - 07x03 - The Scavenger Vortex</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/4/The_Raiders_Minimization\"
|
||||
debug=\"80031\">The Big Bang Theory - 07x04 - The Raiders Minimization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/5/The_Workplace_Proximity\"
|
||||
debug=\"80254\">The Big Bang Theory - 07x05 - The Workplace Proximity</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/6/The_Romance_Resonance\"
|
||||
debug=\"80518\">The Big Bang Theory - 07x06 - The Romance Resonance</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/7/The_Proton_Displacement\"
|
||||
debug=\"81067\">The Big Bang Theory - 07x07 - The Proton Displacement</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/8/The_Itchy_Brain_Simulation\"
|
||||
debug=\"81272\">The Big Bang Theory - 07x08 - The Itchy Brain Simulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/9/The_Thanksgiving_Decoupling\"
|
||||
debug=\"81525\">The Big Bang Theory - 07x09 - The Thanksgiving Decoupling</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/10/The_Discovery_Dissipation\"
|
||||
debug=\"82096\">The Big Bang Theory - 07x10 - The Discovery Dissipation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/11/The_Cooper_Extraction\"
|
||||
debug=\"82274\">The Big Bang Theory - 07x11 - The Cooper Extraction</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/12/The_Hesitation_Ramification\"
|
||||
debug=\"82674\">The Big Bang Theory - 07x12 - The Hesitation Ramification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/13/The_Occupation_Recalibration\"
|
||||
debug=\"82916\">The Big Bang Theory - 07x13 - The Occupation Recalibration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/14/The_Convention_Conundrum\"
|
||||
debug=\"83752\">The Big Bang Theory - 07x14 - The Convention Conundrum</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/15/The_Locomotive_Manipulation\"
|
||||
debug=\"83978\">The Big Bang Theory - 07x15 - The Locomotive Manipulation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/16/The_Table_Polarization\"
|
||||
debug=\"84736\">The Big Bang Theory - 07x16 - The Table Polarization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/17/The_Friendship_Turbulence\"
|
||||
debug=\"85106\">The Big Bang Theory - 07x17 - The Friendship Turbulence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/18/The_Mommy_Observation\"
|
||||
debug=\"85542\">The Big Bang Theory - 07x18 - The Mommy Observation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/19/The_Indecision_Amalgamation\"
|
||||
debug=\"86494\">The Big Bang Theory - 07x19 - The Indecision Amalgamation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/20/The_Relationship_Diremption\"
|
||||
debug=\"86744\">The Big Bang Theory - 07x20 - The Relationship Diremption</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/21/The_Anything_Can_Happen_Recurrence\"
|
||||
debug=\"87403\">The Big Bang Theory - 07x21 - The Anything Can Happen Recurrence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/22/The_Proton_Transmogrification\"
|
||||
debug=\"87725\">The Big Bang Theory - 07x22 - The Proton Transmogrification</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/23/The_Gorilla_Dissolution\"
|
||||
debug=\"87935\">The Big Bang Theory - 07x23 - The Gorilla Dissolution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/24/The_Status_Quo_Combustion\"
|
||||
debug=\"88184\">The Big Bang Theory - 07x24 - The Status Quo Combustion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/1/The_Locomotion_Interruption\"
|
||||
debug=\"92140\">The Big Bang Theory - 08x01 - The Locomotion Interruption</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/2/The_Junior_Professor_Solution\"
|
||||
debug=\"92142\">The Big Bang Theory - 08x02 - The Junior Professor Solution</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/3/The_First_Pitch_Insufficiency\"
|
||||
debug=\"92307\">The Big Bang Theory - 08x03 - The First Pitch Insufficiency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/4/The_Hook-up_Reverberation\"
|
||||
debug=\"92545\">The Big Bang Theory - 08x04 - The Hook-up Reverberation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/5/The_Focus_Attenuation\"
|
||||
debug=\"92757\">The Big Bang Theory - 08x05 - The Focus Attenuation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/6/The_Expedition_Approximation\"
|
||||
debug=\"93043\">The Big Bang Theory - 08x06 - The Expedition Approximation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/7/The_Misinterpretation_Agitation\"
|
||||
debug=\"93361\">The Big Bang Theory - 08x07 - The Misinterpretation Agitation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/8/The_Prom_Equivalency\"
|
||||
debug=\"93612\">The Big Bang Theory - 08x08 - The Prom Equivalency</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/9/The_Septum_Deviation\"
|
||||
debug=\"93873\">The Big Bang Theory - 08x09 - The Septum Deviation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/10/The_Champagne_Reflection\"
|
||||
debug=\"94116\">The Big Bang Theory - 08x10 - The Champagne Reflection</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/11/The_Clean_Room_Infiltration\"
|
||||
debug=\"94911\">The Big Bang Theory - 08x11 - The Clean Room Infiltration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/12/The_Space_Probe_Disintegration\"
|
||||
debug=\"95594\">The Big Bang Theory - 08x12 - The Space Probe Disintegration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/13/The_Anxiety_Optimization\"
|
||||
debug=\"96388\">The Big Bang Theory - 08x13 - The Anxiety Optimization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/14/The_Troll_Manifestation\"
|
||||
debug=\"96654\">The Big Bang Theory - 08x14 - The Troll Manifestation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/15/The_Comic_Book_Store_Regeneration\"
|
||||
debug=\"97289\">The Big Bang Theory - 08x15 - The Comic Book Store Regeneration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/16/The_Intimacy_Acceleration\"
|
||||
debug=\"97610\">The Big Bang Theory - 08x16 - The Intimacy Acceleration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/17/The_Colonization_Application\"
|
||||
debug=\"97863\">The Big Bang Theory - 08x17 - The Colonization Application</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/18/The_Leftover_Thermalization\"
|
||||
debug=\"98196\">The Big Bang Theory - 08x18 - The Leftover Thermalization</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/19/The_Skywalker_Incursion\"
|
||||
debug=\"99011\">The Big Bang Theory - 08x19 - The Skywalker Incursion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/20/The_Fortification_Implementation\"
|
||||
debug=\"99310\">The Big Bang Theory - 08x20 - The Fortification Implementation</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/21/The_Communication_Deterioration\"
|
||||
debug=\"99595\">The Big Bang Theory - 08x21 - The Communication Deterioration</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/22/The_Graduation_Transmission\"
|
||||
debug=\"99816\">The Big Bang Theory - 08x22 - The Graduation Transmission</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/23/The_Maternal_Combustion\"
|
||||
debug=\"100083\">The Big Bang Theory - 08x23 - The Maternal Combustion</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/24/The_Commitment_Determination\"
|
||||
debug=\"100419\">The Big Bang Theory - 08x24 - The Commitment Determination</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Closer/6/1/The_Big_Bang\"
|
||||
debug=\"28952\">The Closer - 06x01 - The Big Bang</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_New_Adventures_of_Old_Christine/3/1/The_big_bang\"
|
||||
debug=\"6773\">The New Adventures of Old Christine - 03x01 - The big bang</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Universe/1/14/Beyond_the_Big_Bang\"
|
||||
debug=\"19618\">The Universe - 01x14 - Beyond the Big Bang</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table
|
||||
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
|
||||
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
|
||||
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
|
||||
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:37 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
Set-Cookie: [PHPSESSID=ns25ifo5qplrt2o336ogcb9v50; path=/]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,514 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?Submit=Search&search=Dallas
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
|
||||
\"Dallas\" Subtitle Download - Addic7ed.com - For all those TV Series Addic7s:
|
||||
Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link href=\"http://www.addic7ed.com/css/wikisubtitles.css\"
|
||||
rel=\"stylesheet\" title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT
|
||||
ICON\" href=\"favicon.ico\" /> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
|
||||
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
|
||||
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
|
||||
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
|
||||
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
|
||||
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
|
||||
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
|
||||
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
|
||||
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
|
||||
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
|
||||
\ window.MGWidgetTitle13385 = \"Promoted
|
||||
Content\"; (function(){\n var
|
||||
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
|
||||
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
|
||||
c=iw[b];}\n catch(e){var
|
||||
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
|
||||
\ var
|
||||
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
|
||||
\ </script>\n
|
||||
\ </div>\n
|
||||
\ <!--
|
||||
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
|
||||
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
|
||||
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
|
||||
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
|
||||
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
|
||||
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
|
||||
type=\"text\" id=\"search\" size=\"50\" value=\"Dallas\" class=\"inputCool\"/> \n
|
||||
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
|
||||
/></form><br />\n\n<b>181 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
|
||||
/>\n<center> <img src=\"http://www.addic7ed.com/images/database.png\"
|
||||
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/802\" >Show
|
||||
<i>Dallas</i></a> ?</span></center><br /><br />\n\n<table class=\"tabel\"
|
||||
align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/1/1/Digger%27s_Daughter\" debug=\"31856\">Dallas
|
||||
- 01x01 - Digger's Daughter</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/1/2/Lessons\" debug=\"31855\">Dallas - 01x02
|
||||
- Lessons</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/1/3/Spy_in_the_House\" debug=\"31854\">Dallas
|
||||
- 01x03 - Spy in the House</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/1/4/Winds_of_Vengeance\" debug=\"31853\">Dallas
|
||||
- 01x04 - Winds of Vengeance</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/1/5/Barbecue\" debug=\"31852\">Dallas -
|
||||
01x05 - Barbecue</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/1/Reunion__%281%29\" debug=\"31906\">Dallas
|
||||
- 02x01 - Reunion (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/2/Reunion__%282%29\" debug=\"31905\">Dallas
|
||||
- 02x02 - Reunion (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/3/Old_Acquaintance\" debug=\"31904\">Dallas
|
||||
- 02x03 - Old Acquaintance</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/4/Bypass\" debug=\"31903\">Dallas - 02x04
|
||||
- Bypass</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/5/Black_Market_Baby\" debug=\"31901\">Dallas
|
||||
- 02x05 - Black Market Baby</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/6/Double_Wedding\" debug=\"31900\">Dallas
|
||||
- 02x06 - Double Wedding</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/7/Runaway\" debug=\"31899\">Dallas - 02x07
|
||||
- Runaway</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/8/Election\" debug=\"31898\">Dallas -
|
||||
02x08 - Election</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/9/Survival\" debug=\"31897\">Dallas -
|
||||
02x09 - Survival</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/10/Act_of_Love\" debug=\"31896\">Dallas
|
||||
- 02x10 - Act of Love</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/11/Triangle\" debug=\"31895\">Dallas -
|
||||
02x11 - Triangle</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/12/Fallen_Idol\" debug=\"31894\">Dallas
|
||||
- 02x12 - Fallen Idol</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/13/Kidnapped\" debug=\"31893\">Dallas
|
||||
- 02x13 - Kidnapped</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/14/Home_Again\" debug=\"31892\">Dallas
|
||||
- 02x14 - Home Again</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/15/For_Love_or_Money\" debug=\"31891\">Dallas
|
||||
- 02x15 - For Love or Money</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/16/Julie%27s_Return\" debug=\"31890\">Dallas
|
||||
- 02x16 - Julie's Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/17/The_Red_File__%281%29\" debug=\"31889\">Dallas
|
||||
- 02x17 - The Red File (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/18/The_Red_File__%282%29\" debug=\"31888\">Dallas
|
||||
- 02x18 - The Red File (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/19/Sue_Ellen%27s_Sister\" debug=\"31887\">Dallas
|
||||
- 02x19 - Sue Ellen's Sister</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/20/Call_Girl\" debug=\"31886\">Dallas
|
||||
- 02x20 - Call Girl</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/21/Royal_Marriage\" debug=\"31885\">Dallas
|
||||
- 02x21 - Royal Marriage</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/22/The_Outsiders\" debug=\"31884\">Dallas
|
||||
- 02x22 - The Outsiders</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/23/John_Ewing_III__%281%29\" debug=\"31883\">Dallas
|
||||
- 02x23 - John Ewing III (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/2/24/John_Ewing_III_%282%29\" debug=\"31882\">Dallas
|
||||
- 02x24 - John Ewing III (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/1/Whatever_Happened_to_Baby_John%3F__%281%29\"
|
||||
debug=\"31858\">Dallas - 03x01 - Whatever Happened to Baby John? (1)</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/2/Whatever_Happened_to_Baby_John%3F__%282%29\"
|
||||
debug=\"31857\">Dallas - 03x02 - Whatever Happened to Baby John? (2)</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/3/The_Silent_Killer\"
|
||||
debug=\"31881\">Dallas - 03x03 - The Silent Killer</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/4/Secrets\"
|
||||
debug=\"31880\">Dallas - 03x04 - Secrets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/5/The_Kristin_Affair\" debug=\"31879\">Dallas
|
||||
- 03x05 - The Kristin Affair</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/6/The_Dove_Hunt\" debug=\"31878\">Dallas
|
||||
- 03x06 - The Dove Hunt</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/7/The_Lost_Child\" debug=\"31877\">Dallas
|
||||
- 03x07 - The Lost Child</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/8/Rodeo\" debug=\"31876\">Dallas - 03x08
|
||||
- Rodeo</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/9/Mastectomy__%281%29\" debug=\"31875\">Dallas
|
||||
- 03x09 - Mastectomy (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/10/Mastectomy__%282%29\" debug=\"31874\">Dallas
|
||||
- 03x10 - Mastectomy (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/11/The_Heiress\" debug=\"31873\">Dallas
|
||||
- 03x11 - The Heiress</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/12/Ellie_Saves_the_Day\" debug=\"31872\">Dallas
|
||||
- 03x12 - Ellie Saves the Day</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/13/Mother_of_the_Year\" debug=\"31871\">Dallas
|
||||
- 03x13 - Mother of the Year</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/14/Return_Engagements\" debug=\"31870\">Dallas
|
||||
- 03x14 - Return Engagements</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/15/Love_and_Marriage\" debug=\"31869\">Dallas
|
||||
- 03x15 - Love and Marriage</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/16/Power_Play\" debug=\"31868\">Dallas
|
||||
- 03x16 - Power Play</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/17/Paternity_Suit\" debug=\"31867\">Dallas
|
||||
- 03x17 - Paternity Suit</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/18/Jenna%27s_Return\" debug=\"31866\">Dallas
|
||||
- 03x18 - Jenna's Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/19/Sue_Ellen%27s_Choice\" debug=\"31865\">Dallas
|
||||
- 03x19 - Sue Ellen's Choice</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/20/Second_Thoughts\" debug=\"31864\">Dallas
|
||||
- 03x20 - Second Thoughts</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/21/Divorce___Ewing_Style\" debug=\"31863\">Dallas
|
||||
- 03x21 - Divorce Ewing Style</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/22/Jock%27s_Trial__%281%29\" debug=\"31862\">Dallas
|
||||
- 03x22 - Jock's Trial (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/23/Jock%27s_Trial__%282%29\" debug=\"31861\">Dallas
|
||||
- 03x23 - Jock's Trial (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/24/The_Wheeler_Dealer\" debug=\"31860\">Dallas
|
||||
- 03x24 - The Wheeler Dealer</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/3/25/A_House_Divided\" debug=\"31859\">Dallas
|
||||
- 03x25 - A House Divided</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/8/1/Killer_at_Large\" debug=\"69652\">Dallas
|
||||
- 08x01 - Killer at Large</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/1/The_Family_Ewing\" debug=\"31937\">Dallas
|
||||
- 09x01 - The Family Ewing</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/2/Rock_Bottom\" debug=\"31936\">Dallas
|
||||
- 09x02 - Rock Bottom</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/3/Those_Eyes\" debug=\"31935\">Dallas
|
||||
- 09x03 - Those Eyes</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/4/Resurrection\" debug=\"31934\">Dallas
|
||||
- 09x04 - Resurrection</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/5/Saving_Grace\" debug=\"31933\">Dallas
|
||||
- 09x05 - Saving Grace</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/6/Mothers\" debug=\"31932\">Dallas - 09x06
|
||||
- Mothers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/7/The_Wind_of_Change\" debug=\"31931\">Dallas
|
||||
- 09x07 - The Wind of Change</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/8/Quandary\" debug=\"31930\">Dallas -
|
||||
09x08 - Quandary</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/9/Close_Encounters\" debug=\"31929\">Dallas
|
||||
- 09x09 - Close Encounters</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/10/Suffer_the_Little_Children\" debug=\"31928\">Dallas
|
||||
- 09x10 - Suffer the Little Children</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/11/The_Prize\" debug=\"31927\">Dallas
|
||||
- 09x11 - The Prize</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/12/En_Passant\" debug=\"31926\">Dallas
|
||||
- 09x12 - En Passant</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/13/Goodbye%2C_Farewell%2C_and_Amen\" debug=\"31925\">Dallas
|
||||
- 09x13 - Goodbye, Farewell, and Amen</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/14/Curiosity_Killed_the_Cat\" debug=\"31924\">Dallas
|
||||
- 09x14 - Curiosity Killed the Cat</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/15/The_Missing_Link\" debug=\"31923\">Dallas
|
||||
- 09x15 - The Missing Link</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/16/Twenty_Four_Hours\" debug=\"31922\">Dallas
|
||||
- 09x16 - Twenty Four Hours</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/17/The_Deadly_Game\" debug=\"31921\">Dallas
|
||||
- 09x17 - The Deadly Game</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/18/Blame_it_on_Bogota\" debug=\"31920\">Dallas
|
||||
- 09x18 - Blame it on Bogota</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/19/Shadow_Games\" debug=\"31919\">Dallas
|
||||
- 09x19 - Shadow Games</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/20/Missing\" debug=\"31918\">Dallas -
|
||||
09x20 - Missing</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/21/Dire_Straits\" debug=\"31917\">Dallas
|
||||
- 09x21 - Dire Straits</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/22/Overture\" debug=\"31916\">Dallas -
|
||||
09x22 - Overture</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/23/Sitting_Ducks\" debug=\"31915\">Dallas
|
||||
- 09x23 - Sitting Ducks</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/24/Masquerade\" debug=\"31914\">Dallas
|
||||
- 09x24 - Masquerade</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/25/Just_Desserts\" debug=\"31913\">Dallas
|
||||
- 09x25 - Just Desserts</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/26/Nothing%27s_Ever_Perfect\" debug=\"31912\">Dallas
|
||||
- 09x26 - Nothing's Ever Perfect</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/27/J.R._Rising\" debug=\"31911\">Dallas
|
||||
- 09x27 - J.R. Rising</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/28/Serendipity\" debug=\"31910\">Dallas
|
||||
- 09x28 - Serendipity</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/29/Thrice_in_a_Lifetime\" debug=\"31909\">Dallas
|
||||
- 09x29 - Thrice in a Lifetime</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/30/Hello%2C_Goodbye%2C_Hello\" debug=\"31908\">Dallas
|
||||
- 09x30 - Hello, Goodbye, Hello</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/9/31/Blast_From_the_Past\" debug=\"31907\">Dallas
|
||||
- 09x31 - Blast From the Past</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/1/Carousel\" debug=\"25485\">Dallas -
|
||||
12x01 - Carousel</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/2/No_Greater_Love\" debug=\"25486\">Dallas
|
||||
- 12x02 - No Greater Love</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/3/The_Call_of_the_Wild\" debug=\"25487\">Dallas
|
||||
- 12x03 - The Call of the Wild</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/4/Out_of_the_Frying_Pan\" debug=\"25488\">Dallas
|
||||
- 12x04 - Out of the Frying Pan</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/5/Road_Work\" debug=\"25489\">Dallas
|
||||
- 12x05 - Road Work</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/6/War_and_Love_and_the_Whole_Damned_Thing\"
|
||||
debug=\"25490\">Dallas - 12x06 - War and Love and the Whole Damned Thing</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/7/Showdown_at_the_Ewing_Corral\"
|
||||
debug=\"25491\">Dallas - 12x07 - Showdown at the Ewing Corral</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/8/Deception\"
|
||||
debug=\"25492\">Dallas - 12x08 - Deception</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/9/Counter_Attack\" debug=\"25493\">Dallas
|
||||
- 12x09 - Counter Attack</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/10/The_Sting\" debug=\"25494\">Dallas
|
||||
- 12x10 - The Sting</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/11/The_Two_Mrs._Ewings\" debug=\"25495\">Dallas
|
||||
- 12x11 - The Two Mrs. Ewings</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/12/The_Switch\" debug=\"25496\">Dallas
|
||||
- 12x12 - The Switch</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/13/Here%27s_Papa%21\" debug=\"25497\">Dallas
|
||||
- 12x13 - Here's Papa!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/14/Comings_and_Goings\" debug=\"25498\">Dallas
|
||||
- 12x14 - Comings and Goings</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/15/Country_Girl\" debug=\"25499\">Dallas
|
||||
- 12x15 - Country Girl</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/16/Wedding_Bell_Blues\" debug=\"25500\">Dallas
|
||||
- 12x16 - Wedding Bell Blues</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/17/The_Way_We_Were\" debug=\"25501\">Dallas
|
||||
- 12x17 - The Way We Were</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/18/The_Serpent%27s_Tooth\" debug=\"25502\">Dallas
|
||||
- 12x18 - The Serpent's Tooth</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/19/Three_Hundred\" debug=\"25503\">Dallas
|
||||
- 12x19 - Three Hundred</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/20/April_Showers\" debug=\"25504\">Dallas
|
||||
- 12x20 - April Showers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/21/And_Away_We_Go%21\" debug=\"25505\">Dallas
|
||||
- 12x21 - And Away We Go!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/22/Yellow_Brick_Road\" debug=\"25506\">Dallas
|
||||
- 12x22 - Yellow Brick Road</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/23/The_Sound_of_Money\" debug=\"25507\">Dallas
|
||||
- 12x23 - The Sound of Money</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/24/The_Great_Texas_Waltz\" debug=\"25508\">Dallas
|
||||
- 12x24 - The Great Texas Waltz</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/25/Mission_to_Moscow\" debug=\"25510\">Dallas
|
||||
- 12x25 - Mission to Moscow</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/12/26/Reel_Life\" debug=\"25511\">Dallas
|
||||
- 12x26 - Reel Life</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/1/Phantom_of_the_Oil_Rig\" debug=\"26320\">Dallas
|
||||
- 13x01 - Phantom of the Oil Rig</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/2/The_Leopard%27s_Spots\" debug=\"26321\">Dallas
|
||||
- 13x02 - The Leopard's Spots</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/3/Cry_Me_a_River_of_Oil\" debug=\"26322\">Dallas
|
||||
- 13x03 - Cry Me a River of Oil</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/4/Ka-Booooom%21\" debug=\"26323\">Dallas
|
||||
- 13x04 - Ka-Booooom!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/5/Sunrise%2C_Sunset\" debug=\"26324\">Dallas
|
||||
- 13x05 - Sunrise, Sunset</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/6/Pride_and_Prejudice\" debug=\"26325\">Dallas
|
||||
- 13x06 - Pride and Prejudice</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/7/Fathers_and_Other_Strangers\" debug=\"26326\">Dallas
|
||||
- 13x07 - Fathers and Other Strangers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/8/Black_Tide\" debug=\"26327\">Dallas
|
||||
- 13x08 - Black Tide</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/9/Daddy_Dearest\" debug=\"26328\">Dallas
|
||||
- 13x09 - Daddy Dearest</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/10/Hell%27s_Fury\" debug=\"26329\">Dallas
|
||||
- 13x10 - Hell's Fury</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/11/Cally_on_a_Hot_Tin_Roof\" debug=\"26330\">Dallas
|
||||
- 13x11 - Cally on a Hot Tin Roof</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/12/Sex%2C_Lies_and_Videotape\" debug=\"26331\">Dallas
|
||||
- 13x12 - Sex, Lies and Videotape</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/13/Tale_of_Two_Cities\" debug=\"26332\">Dallas
|
||||
- 13x13 - Tale of Two Cities</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/14/Judgment_Day\" debug=\"26333\">Dallas
|
||||
- 13x14 - Judgment Day</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/15/Unchain_My_Heart\" debug=\"26334\">Dallas
|
||||
- 13x15 - Unchain My Heart</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/16/I_Dream_of_Jeannie\" debug=\"26335\">Dallas
|
||||
- 13x16 - I Dream of Jeannie</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/17/After_Midnight\" debug=\"26336\">Dallas
|
||||
- 13x17 - After Midnight</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/18/The_Crucible\" debug=\"26337\">Dallas
|
||||
- 13x18 - The Crucible</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/19/Dear_Hearts_and_Gentle_People\" debug=\"26338\">Dallas
|
||||
- 13x19 - Dear Hearts and Gentle People</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/20/Paradise_Lost\" debug=\"26339\">Dallas
|
||||
- 13x20 - Paradise Lost</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/21/Will_Power\" debug=\"26340\">Dallas
|
||||
- 13x21 - Will Power</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/22/The_Smiling_Cobra\" debug=\"26341\">Dallas
|
||||
- 13x22 - The Smiling Cobra</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/23/Jessica_Redux\" debug=\"26346\">Dallas
|
||||
- 13x23 - Jessica Redux</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/24/Family_Plot\" debug=\"26342\">Dallas
|
||||
- 13x24 - Family Plot</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/25/The_Southfork_Wedding_Jinx\" debug=\"26343\">Dallas
|
||||
- 13x25 - The Southfork Wedding Jinx</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas/13/26/Three%2C_Three%2C_Three_%281%29\"
|
||||
debug=\"26344\">Dallas - 13x26 - Three, Three, Three (1)</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/13/27/Three%2C_Three%2C_Three_%282%29\"
|
||||
debug=\"26345\">Dallas - 13x27 - Three, Three, Three (2)</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/film.png\" /></td><td><a href=\"movie/88544\"
|
||||
debug=\"88544\">Dallas (1950)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/1/Changing_of_the_Guard\" debug=\"63362\">Dallas
|
||||
(2012) - 01x01 - Changing of the Guard</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/2/Hedging_Your_Bets\" debug=\"63364\">Dallas
|
||||
(2012) - 01x02 - Hedging Your Bets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/3/The_Price_You_Pay\" debug=\"63827\">Dallas
|
||||
(2012) - 01x03 - The Price You Pay</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/4/The_Last_Hurrah\" debug=\"63994\">Dallas
|
||||
(2012) - 01x04 - The Last Hurrah</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/5/Truth_and_consequences\"
|
||||
debug=\"64210\">Dallas (2012) - 01x05 - Truth and consequences</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/6/The_Enemy_of_My_Enemy\"
|
||||
debug=\"64512\">Dallas (2012) - 01x06 - The Enemy of My Enemy</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/7/Collateral_Damage\"
|
||||
debug=\"64686\">Dallas (2012) - 01x07 - Collateral Damage</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/8/No_Good_Deed\"
|
||||
debug=\"64933\">Dallas (2012) - 01x08 - No Good Deed</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/9/Family_Business\"
|
||||
debug=\"65100\">Dallas (2012) - 01x09 - Family Business</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/10/Revelations\"
|
||||
debug=\"65276\">Dallas (2012) - 01x10 - Revelations</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/1/Battle_Lines\"
|
||||
debug=\"71069\">Dallas (2012) - 02x01 - Battle Lines</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/2/Venomous_Creatures\"
|
||||
debug=\"71070\">Dallas (2012) - 02x02 - Venomous Creatures</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/3/Sins_of_the_Father\"
|
||||
debug=\"71358\">Dallas (2012) - 02x03 - Sins of the Father</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/4/False_Confessions\"
|
||||
debug=\"71644\">Dallas (2012) - 02x04 - False Confessions</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/5/Trial_and_Error\"
|
||||
debug=\"71949\">Dallas (2012) - 02x05 - Trial and Error</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/6/Blame_Game\"
|
||||
debug=\"72265\">Dallas (2012) - 02x06 - Blame Game</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/7/The_Furious_and_the_Fast\"
|
||||
debug=\"72625\">Dallas (2012) - 02x07 - The Furious and the Fast</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/8/J.R.%27s_Masterpiece\"
|
||||
debug=\"72969\">Dallas (2012) - 02x08 - J.R.'s Masterpiece</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/9/Ewings_Unite%21\"
|
||||
debug=\"73242\">Dallas (2012) - 02x09 - Ewings Unite!</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/10/Guilt_And_Innocence\"
|
||||
debug=\"73578\">Dallas (2012) - 02x10 - Guilt And Innocence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/11/Let_Me_In\"
|
||||
debug=\"73846\">Dallas (2012) - 02x11 - Let Me In</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/12/A_Call_to_Arms\"
|
||||
debug=\"74098\">Dallas (2012) - 02x12 - A Call to Arms</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/13/Love_%40_Family\"
|
||||
debug=\"74099\">Dallas (2012) - 02x13 - Love & Family</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/14/Guilt_By_Association\"
|
||||
debug=\"74342\">Dallas (2012) - 02x14 - Guilt By Association</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/15/Legacies\"
|
||||
debug=\"74347\">Dallas (2012) - 02x15 - Legacies</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/1/The_Return\"
|
||||
debug=\"84652\">Dallas (2012) - 03x01 - The Return</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/2/Trust_Me\"
|
||||
debug=\"84941\">Dallas (2012) - 03x02 - Trust Me</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/3/Playing_Chicken\"
|
||||
debug=\"85388\">Dallas (2012) - 03x03 - Playing Chicken</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/4/Lifting_the_Veil\"
|
||||
debug=\"85735\">Dallas (2012) - 03x04 - Lifting the Veil</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/5/D.T.R.\"
|
||||
debug=\"86033\">Dallas (2012) - 03x05 - D.T.R.</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/6/Like_Father%2C_Like_Son\"
|
||||
debug=\"86406\">Dallas (2012) - 03x06 - Like Father, Like Son</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/7/Like_a_Bad_Penny\"
|
||||
debug=\"86664\">Dallas (2012) - 03x07 - Like a Bad Penny</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/8/Where_There%27s_Smoke\"
|
||||
debug=\"86948\">Dallas (2012) - 03x08 - Where There's Smoke</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/9/Denial%2C_Anger%2C_Acceptance\"
|
||||
debug=\"91222\">Dallas (2012) - 03x09 - Denial, Anger, Acceptance</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/10/Dead_Reckoning\"
|
||||
debug=\"91469\">Dallas (2012) - 03x10 - Dead Reckoning</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/11/Hurt\"
|
||||
debug=\"91634\">Dallas (2012) - 03x11 - Hurt</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/12/Victims_of_Love\"
|
||||
debug=\"91837\">Dallas (2012) - 03x12 - Victims of Love</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/13/Boxed_In\"
|
||||
debug=\"91959\">Dallas (2012) - 03x13 - Boxed In</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/14/Endgame\"
|
||||
debug=\"92148\">Dallas (2012) - 03x14 - Endgame</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/15/Brave_New_World\"
|
||||
debug=\"92160\">Dallas (2012) - 03x15 - Brave New World</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/film.png\" /></td><td><a href=\"movie/82717\"
|
||||
debug=\"82717\">Dallas Buyers Club (2013)</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table
|
||||
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
|
||||
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
|
||||
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
|
||||
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:38 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
Set-Cookie: [PHPSESSID=38vgutgvno5eij1f9au3ch6au6; path=/]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,233 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?Submit=Search&search=Dallas+%282012%29
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
||||
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
|
||||
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
|
||||
\"Dallas (2012)\" Subtitle Download - Addic7ed.com - For all those TV Series
|
||||
Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link
|
||||
href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
|
||||
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
|
||||
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
|
||||
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
|
||||
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
|
||||
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
|
||||
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
|
||||
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
|
||||
Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"
|
||||
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
|
||||
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
|
||||
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
|
||||
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
|
||||
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
|
||||
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
|
||||
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
|
||||
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
|
||||
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
|
||||
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
|
||||
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
|
||||
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
|
||||
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
|
||||
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
|
||||
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
|
||||
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
|
||||
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
|
||||
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"
|
||||
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
|
||||
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
|
||||
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
|
||||
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
|
||||
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
|
||||
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
|
||||
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
|
||||
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
|
||||
\ window.MGWidgetTitle13385 = \"Promoted
|
||||
Content\"; (function(){\n var
|
||||
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
|
||||
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
|
||||
c=iw[b];}\n catch(e){var
|
||||
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
|
||||
\ var
|
||||
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
|
||||
\ </script>\n
|
||||
\ </div>\n
|
||||
\ <!--
|
||||
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
|
||||
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
|
||||
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
|
||||
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
|
||||
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
|
||||
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
|
||||
type=\"text\" id=\"search\" size=\"50\" value=\"Dallas (2012)\" class=\"inputCool\"/> \n
|
||||
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
|
||||
/></form><br />\n\n<b>40 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
|
||||
/>\n<center> <img src=\"http://www.addic7ed.com/images/database.png\"
|
||||
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/2559\" >Show
|
||||
<i>Dallas (2012)</i></a> ?</span></center><br /><br />\n\n<table class=\"tabel\"
|
||||
align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/1/Changing_of_the_Guard\" debug=\"63362\">Dallas
|
||||
(2012) - 01x01 - Changing of the Guard</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/2/Hedging_Your_Bets\" debug=\"63364\">Dallas
|
||||
(2012) - 01x02 - Hedging Your Bets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/3/The_Price_You_Pay\" debug=\"63827\">Dallas
|
||||
(2012) - 01x03 - The Price You Pay</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/4/The_Last_Hurrah\" debug=\"63994\">Dallas
|
||||
(2012) - 01x04 - The Last Hurrah</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
|
||||
/></td><td><a href=\"serie/Dallas_%282012%29/1/5/Truth_and_consequences\"
|
||||
debug=\"64210\">Dallas (2012) - 01x05 - Truth and consequences</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/6/The_Enemy_of_My_Enemy\"
|
||||
debug=\"64512\">Dallas (2012) - 01x06 - The Enemy of My Enemy</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/7/Collateral_Damage\"
|
||||
debug=\"64686\">Dallas (2012) - 01x07 - Collateral Damage</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/8/No_Good_Deed\"
|
||||
debug=\"64933\">Dallas (2012) - 01x08 - No Good Deed</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/9/Family_Business\"
|
||||
debug=\"65100\">Dallas (2012) - 01x09 - Family Business</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/10/Revelations\"
|
||||
debug=\"65276\">Dallas (2012) - 01x10 - Revelations</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/1/Battle_Lines\"
|
||||
debug=\"71069\">Dallas (2012) - 02x01 - Battle Lines</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/2/Venomous_Creatures\"
|
||||
debug=\"71070\">Dallas (2012) - 02x02 - Venomous Creatures</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/3/Sins_of_the_Father\"
|
||||
debug=\"71358\">Dallas (2012) - 02x03 - Sins of the Father</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/4/False_Confessions\"
|
||||
debug=\"71644\">Dallas (2012) - 02x04 - False Confessions</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/5/Trial_and_Error\"
|
||||
debug=\"71949\">Dallas (2012) - 02x05 - Trial and Error</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/6/Blame_Game\"
|
||||
debug=\"72265\">Dallas (2012) - 02x06 - Blame Game</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/7/The_Furious_and_the_Fast\"
|
||||
debug=\"72625\">Dallas (2012) - 02x07 - The Furious and the Fast</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/8/J.R.%27s_Masterpiece\"
|
||||
debug=\"72969\">Dallas (2012) - 02x08 - J.R.'s Masterpiece</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/9/Ewings_Unite%21\"
|
||||
debug=\"73242\">Dallas (2012) - 02x09 - Ewings Unite!</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/10/Guilt_And_Innocence\"
|
||||
debug=\"73578\">Dallas (2012) - 02x10 - Guilt And Innocence</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/11/Let_Me_In\"
|
||||
debug=\"73846\">Dallas (2012) - 02x11 - Let Me In</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/12/A_Call_to_Arms\"
|
||||
debug=\"74098\">Dallas (2012) - 02x12 - A Call to Arms</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/13/Love_%40_Family\"
|
||||
debug=\"74099\">Dallas (2012) - 02x13 - Love & Family</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/14/Guilt_By_Association\"
|
||||
debug=\"74342\">Dallas (2012) - 02x14 - Guilt By Association</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/15/Legacies\"
|
||||
debug=\"74347\">Dallas (2012) - 02x15 - Legacies</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/1/The_Return\"
|
||||
debug=\"84652\">Dallas (2012) - 03x01 - The Return</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/2/Trust_Me\"
|
||||
debug=\"84941\">Dallas (2012) - 03x02 - Trust Me</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/3/Playing_Chicken\"
|
||||
debug=\"85388\">Dallas (2012) - 03x03 - Playing Chicken</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/4/Lifting_the_Veil\"
|
||||
debug=\"85735\">Dallas (2012) - 03x04 - Lifting the Veil</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/5/D.T.R.\"
|
||||
debug=\"86033\">Dallas (2012) - 03x05 - D.T.R.</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/6/Like_Father%2C_Like_Son\"
|
||||
debug=\"86406\">Dallas (2012) - 03x06 - Like Father, Like Son</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/7/Like_a_Bad_Penny\"
|
||||
debug=\"86664\">Dallas (2012) - 03x07 - Like a Bad Penny</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/8/Where_There%27s_Smoke\"
|
||||
debug=\"86948\">Dallas (2012) - 03x08 - Where There's Smoke</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/9/Denial%2C_Anger%2C_Acceptance\"
|
||||
debug=\"91222\">Dallas (2012) - 03x09 - Denial, Anger, Acceptance</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/10/Dead_Reckoning\"
|
||||
debug=\"91469\">Dallas (2012) - 03x10 - Dead Reckoning</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/11/Hurt\"
|
||||
debug=\"91634\">Dallas (2012) - 03x11 - Hurt</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/12/Victims_of_Love\"
|
||||
debug=\"91837\">Dallas (2012) - 03x12 - Victims of Love</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/13/Boxed_In\"
|
||||
debug=\"91959\">Dallas (2012) - 03x13 - Boxed In</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/14/Endgame\"
|
||||
debug=\"92148\">Dallas (2012) - 03x14 - Endgame</a></td></tr><tr><tr><td><img
|
||||
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/15/Brave_New_World\"
|
||||
debug=\"92160\">Dallas (2012) - 03x15 - Brave New World</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table
|
||||
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
|
||||
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
|
||||
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
|
||||
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
|
||||
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
|
||||
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
|
||||
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
|
||||
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
|
||||
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
|
||||
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
|
||||
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
|
||||
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
|
||||
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
|
||||
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
|
||||
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
|
||||
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
|
||||
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
|
||||
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
|
||||
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
|
||||
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
|
||||
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
|
||||
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
|
||||
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
|
||||
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
|
||||
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
|
||||
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
|
||||
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
|
||||
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
|
||||
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
|
||||
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
|
||||
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
|
||||
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
|
||||
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
|
||||
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
|
||||
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
|
||||
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
|
||||
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
|
||||
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
|
||||
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
|
||||
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
|
||||
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
|
||||
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
|
||||
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
|
||||
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [text/html]
|
||||
Date: ['Sat, 04 Jul 2015 17:11:38 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [nginx]
|
||||
Set-Cookie: [PHPSESSID=uj1fmp2tpmevdai9ef5b9913l3; path=/]
|
||||
X-Powered-By: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,826 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRwW7CMAyG7zxF1PtIug6pBxMeYIdJe4PQGtbRxCV2qj3+SokEQmhD4vbZ8u//
|
||||
lw2bH9+rESN3FNZFuTSFwtBQ24X9ukiye6mLjV2AR/mi9hN5oMA4NQYXnWe7UGeaQMHo+oQnUsAS
|
||||
UyMzq0nstxjPhYLgPFqhAwbQM+f+RZ0XTBHsYSzrPZWruFtRdRy+O5GaXX2s3kDnkSzXV3rQ15b3
|
||||
/FmcJH4gwKsx6uP9STNsKLR/urWUtj1aszQV6Fz85zWHyle+TIHOD8nAJ7p93y9uhcB49wEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['226']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+a3YxOGdv
|
||||
MTVyZjVvM3Fwaml0dDhzYThxMzQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
|
||||
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjViOGY4ZjRlNDFjY2IyMWU8L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFuZ3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxz
|
||||
dHJpbmc+ZnJlLGdlcjwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5t
|
||||
b3ZpZWJ5dGVzaXplPC9uYW1lPgo8dmFsdWU+PHN0cmluZz43MDMzNzMyNzE0PC9zdHJpbmc+PC92
|
||||
YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVy
|
||||
Pgo8bmFtZT5pbWRiaWQ8L25hbWU+Cjx2YWx1ZT48aW50Pjc3MDgyODwvaW50PjwvdmFsdWU+Cjwv
|
||||
bWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmlu
|
||||
Zz5mcmUsZ2VyPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjwv
|
||||
ZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21ldGhvZENhbGw+Cg==
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['739']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
q+9tYOAAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['2401']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Eb3dubG9hZFN1
|
||||
YnRpdGxlczwvbWV0aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz5rdjE4
|
||||
Z28xNXJmNW8zcXBqaXR0OHNhOHEzNDwvc3RyaW5nPjwvdmFsdWU+CjwvcGFyYW0+CjxwYXJhbT4K
|
||||
PHZhbHVlPjxhcnJheT48ZGF0YT4KPHZhbHVlPjxzdHJpbmc+MTk1Mzc2NzY1MDwvc3RyaW5nPjwv
|
||||
dmFsdWU+CjwvZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21ldGhv
|
||||
ZENhbGw+Cg==
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['292']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4Sdx5LzXHed576KrzRF2cip6rNcyAARCSLPkHPOuHrjlX/ZsuTQkybZRDjn7L3W
|
||||
s9gk+Pd/u/ruryNf1noc/us/wf8F+qe/8iEds3oo/+s/7Vvxn6l/+m///J/+7vOtGjM7X6dxWPP3
|
||||
gSle4n795//01/+49d746+8j7vb8z62//l63ZU+3f7n917txn+TL/7jz199D3Of/vG7xtq9/g/9y
|
||||
5x9/+F+b/2MP7zn8MwJBf5nq3+A/7v7jqeC/ee7f4L/d///pYFm8xf+vQ8XLEt//eu+vv/88/X/e
|
||||
+3fP/fdj+8dD/9tB//o3h66zdU+2euvyou7y/+0k/i+7/zdjh2kcJQmSwKF/N/6//uMs/OtD//FM
|
||||
/u8n9x/m5f9/SjK2Ksy//qAIfeNKe+FCt4+pAtay4vhYrRTYSUHpoc1urAqYozGsKOq13f82FLOH
|
||||
qs8DMTcEWql2MQF6qxfAMXCPYrmbibfFkDbgE3rUZAbyEal1FRNKkJFraV72ZCaGiUIanPhlIvWl
|
||||
RfpLd/sPT3dyBkGS9rNV2gAioemPeVx00O88aGCITGEFiedi50+IGIF54jgwYcyUdYEBGyVp4ZFA
|
||||
gU6gda3isl9rIWOIQDY4TQNrPwzwz95hOoii7CHpJN8hCgS8O0QVVMsLP7hptNP1EcR5qsd+tt6h
|
||||
Augo2SV4UdHMR4YWDOXo22zi6GfHCGpHvQBQLtSL0eU7kRRe5AMaCEQDGnOEAUTQo/uyZ5U5A0hH
|
||||
e3fvJI5YgkRCGeq7vs+eEzt1+VSQM9uiPUdKk7fSoiDxK1BM7uMG3y7ftz/bUDhBTyD3xwCrhgYK
|
||||
790IdSMcSO2CPPPr6CZplWObjgAyXuuIRvadJHGa1SlMLrGFInnLkjsQ5XDpJp5VJHcebkCyoHPr
|
||||
SzqWqTSFNX2Eq0MIWuti+A5ijDoAE8HM70If7LijBLDjgAlJeAFPOKh4NNz4IX0vUL7erpDnTbUW
|
||||
zWIdJjIM5I/dAn5OGrwgs9QYDg/daY/0k32zOG70hgOnD9XaKIvPWCzPducxc/wB1JU62tI8xiDF
|
||||
gxYbTNq6AG/NgLdki5s4LpnfOwoNDpKiDobSUsNpdblTx+0Rvr3dFQskwEOFI+LT/mja6kiT6jSe
|
||||
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
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['33165']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+a3YxOGdvMTVyZjVvM3Fw
|
||||
aml0dDhzYThxMzQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5ajAsXQzmACxNvUOioJLQl/SEe3wJNIMbo7nudN/OmA81L
|
||||
D2RC53tralqVnBI0nVW9edQ0hvvhTBtRgMbwtOqGfrTGY3oYpZPai4KslIDAJIeIMxHwwcUuLExS
|
||||
s27RrYKAkRqFDzJED2wRubC15wlpB3HknFwvwLLMVrbzAtvP/xqGnTXqZ5qysR1Q8JKfKmBZ/Qtb
|
||||
tsrf3FzA8kUy+Jk+7/cGaUzqgngBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['194']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95xiwl6KCQtMhnoCN96g0EFJaEv6Qzy+BZpAjNHd92b65k0Hry81
|
||||
wkzWDUY3+bkocyDdGTnoR5MH35/q/MozVOSfRt7JTUY7ioVJWKEcz2CjCICzGAMtBOi8DZ1fGaJZ
|
||||
tWQ3AaiFIu688MEhW0Vq7PY0Ie7Aq/ICtzUctPHQm6AlstRMRnZwIjumfY2mzmj5M1ua0I7Ey6Ks
|
||||
amRJ/Qtbt0qf3l8hS/dJ4Bb6vOYb0rW33YYBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,186 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRQY7CMAxF95wi6h4SiipRyaQHmAXS3CBtPVBonE6dRHP8KSUSaDQCJHbPlr//
|
||||
lw3Vj+1FxJE7R7tsvVKZQGpc29FhlwX/tdxmlV6ARX907Sfy4IhxagxmNJb1QlxpAgHR9AEvJID9
|
||||
GBo/s5jEtsbxWgggY1F7d0YCOXPq39RpwRRBrw9uKDex+46+3B7JbGjITzlTLECmkSSXd3qQ95b/
|
||||
+bM3PvALAXKlxP7jTTNsHLUP3VoX6h61WqmiBJmqZ2ZzqnTm2xTI9JEEfKG///sFGksCTvgBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['227']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=1gop93viqvt98hna3np2j2snv5; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MWdvcDkz
|
||||
dmlxdnQ5OGhuYTNucDJqMnNudjU8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5zZWFzb248
|
||||
L25hbWU+Cjx2YWx1ZT48aW50PjI8L2ludD48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5h
|
||||
bWU+cXVlcnk8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPk1hcnZlbHMgQWdlbnRzIG9mIFMuSC5JLkUu
|
||||
TC5ELjwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5lcGlzb2RlPC9u
|
||||
YW1lPgo8dmFsdWU+PGludD42PC9pbnQ+PC92YWx1ZT4KPC9tZW1iZXI+CjxtZW1iZXI+CjxuYW1l
|
||||
PnN1Ymxhbmd1YWdlaWQ8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPmh1bjwvc3RyaW5nPjwvdmFsdWU+
|
||||
CjwvbWVtYmVyPgo8L3N0cnVjdD48L3ZhbHVlPgo8L2RhdGE+PC9hcnJheT48L3ZhbHVlPgo8L3Bh
|
||||
cmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['599']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
QgAA
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['1371']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=1gop93viqvt98hna3np2j2snv5; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MWdvcDkzdmlxdnQ5OGhu
|
||||
YTNucDJqMnNudjU8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95yiYS+trFwM5QAuTLxBoaOS0Nb0h3h8C0wCMUZ33+u8mTcdaF9m
|
||||
ZBP6MDjblMdKlAxt7/Rg702Z4u1wKltZgMH4cPqK4elswPzwVF6ZIAu2UgYGkxoTzsQgRJ/6uDDL
|
||||
zaZDvwoGVhmUIaqYAvBFUGFrpwl5B1kLwS5n4CTJynde4Pv5X8Owd1b/TNMudSNKUYm6Bk7qX9iy
|
||||
FX1zcwGnixCEmT7v9wZFg1bKeAEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['193']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=1gop93viqvt98hna3np2j2snv5; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95xiwl4KiQtMhnoCN96g0EFJaEv6Qzy+BZpAjNHd92b65k0Hry81
|
||||
wkzWDUY3eVWUOZDujBz0o8mD7091fuUZKvJPI+/kJqMdxcIkrFCOZ7BRBMBZjIEWAnTehs6vDNGs
|
||||
WrKbANRCEXde+OCQrSI1dnuaEHfg5/ICtzUctPHQm6AlstRMRnZwIjumfY2mzmj5M1ua0I7Ey6Ks
|
||||
amRJ/Qtbt0qf3l8hS/dJ4Bb6vOYbaMBv3YYBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,206 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRTY7CMAyF95wi6n5I6IjCwoQDsBhpbhBaFyj5KbWDOD6hRAKNRsxI7D5bfnnP
|
||||
MawvzoozDnQIflXMpqoQ6OvQHPxuVURuP5bFWk/AIe9D843UB0+YGr0ZjCM9EXdKIOBsbMQbCSAe
|
||||
Ys0jiyR2WxzuhQBvHGoOR/QgR879hzo/kCJoE7tqx1U3X/Ylm1M1a+28pUVnP0HmkSyXT3qQz5a/
|
||||
+RMbjvSPAKVS4mvzphnWwTcv3ZoQtxa1mqoybZarv8zGVPmbH1Mg80Uy0I1+3u8KdB9H3fgBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['227']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=auj6gt6j58p2taq61fl5fs7jl3; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+YXVqNmd0
|
||||
Nmo1OHAydGFxNjFmbDVmczdqbDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
|
||||
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjViOGY4ZjRlNDFjY2IyMWU8L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFuZ3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxz
|
||||
dHJpbmc+ZnJlLGdlcjwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5t
|
||||
b3ZpZWJ5dGVzaXplPC9uYW1lPgo8dmFsdWU+PHN0cmluZz43MDMzNzMyNzE0PC9zdHJpbmc+PC92
|
||||
YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVy
|
||||
Pgo8bmFtZT5pbWRiaWQ8L25hbWU+Cjx2YWx1ZT48aW50Pjc3MDgyODwvaW50PjwvdmFsdWU+Cjwv
|
||||
bWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmlu
|
||||
Zz5mcmUsZ2VyPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjwv
|
||||
ZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21ldGhvZENhbGw+Cg==
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['739']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
OcjXYOAAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['2401']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=auj6gt6j58p2taq61fl5fs7jl3; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+YXVqNmd0Nmo1OHAydGFx
|
||||
NjFmbDVmczdqbDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6DIBCF956CsK+gqy5GPEAXTXoDlGlrImD4MT1+UUk0TdPuvse8mTcMtC89
|
||||
khmdH6xpaFVyStD0Vg3m0dAY7qczbUUBGsPTqhv6yRqP6WGSTmovCrJRAgKzHCMuRMAHF/uwMknN
|
||||
ukO3CQJGahQ+yBA9sFXkwt6eJ6QdRM05uV6AZZmt7OAFdpz/NQx7a9TPNGVjN6LgJa8rYFn9C1u3
|
||||
yt/cXcDyRTL4hT7v9wZFFXqCeAEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['193']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=auj6gt6j58p2taq61fl5fs7jl3; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQSw6DMAxE95zCYl+SSl1QyYQTdNMbBGJaJJKgfFCPXz6RQFXV7t7YGY9jrF96
|
||||
gImc762p8nPBcyDTWtWbR5XH0J3KvBYZagpPq+7kR2s8zYVROqm9yGCjGQAnOURaCNAHF9uwMsxm
|
||||
3ZDbBKCRmoQPMkSPbBWpsdvThHkHceFXuK3hYGyAzkajkKVmMrKDE9kx7Ws0tdaon9nKxmYgwQvO
|
||||
S2RJ/Qtbt0qf3l8hS/dJ4Bf6vOYbJSaHa4YBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,187 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRQY7CMAxF95wi6h4SmBHMwoQDsECaG6SNC4UmLolTcXxKiQQajQak2T1b/v5f
|
||||
NmwurhU9htiQXxfzmSoE+ops4/frInE9/So2egIO+UD2G2NHPuLQ6EwwLuqJuNMAAnrTJryRgMgh
|
||||
VTyyGMSuxHAvBHjjUDOd0IMcOfcf6rxgiKCroMpjs6J6aXt16OnMp2XdJT5+gswjWS6f9CCfLX/z
|
||||
j2w4xTcCLJQSu+0/zbAib/90s5TKFrWaqY8FyFy9MhtT5TM/pkDmj2SIN/r5vys9Mxtb+AEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['226']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=cr0bji7of6dv0hvoqtk6fputj4; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+Y3IwYmpp
|
||||
N29mNmR2MGh2b3F0azZmcHV0ajQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5xdWVyeTwv
|
||||
bmFtZT4KPHZhbHVlPjxzdHJpbmc+ZW5kZXJzLmdhbWUuMjAxMy43MjBwLmJsdXJheS54MjY0LXNw
|
||||
YXJrcy5ta3Y8L3N0cmluZz48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFu
|
||||
Z3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxzdHJpbmc+Z2VyPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1i
|
||||
ZXI+Cjwvc3RydWN0PjwvdmFsdWU+CjwvZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+Cjwv
|
||||
cGFyYW1zPgo8L21ldGhvZENhbGw+Cg==
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['478']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
aP276P8B6iSi8VBdAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['1553']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:06 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=cr0bji7of6dv0hvoqtk6fputj4; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+Y3IwYmppN29mNmR2MGh2
|
||||
b3F0azZmcHV0ajQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aZeNiKAdwYeINCh2VhLakP8TjW6AJxBjdfa/zZt50oHnp
|
||||
gUzofG9NTY8lpwRNZ1VvHjWN4X4400YUoDE8rbqhH63xmB5G6aT2oiArJSAwySHiTAR8cLELC5PU
|
||||
rFt0qyBgpEbhgwzRA1tELmzteULaQZw4J9cLsCyzle28wPbzv4ZhZ436maZsbAcUvORVBSyrf2HL
|
||||
VvmbmwtYvkgGP9Pn/d43FXXyeAEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['193']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:06 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=cr0bji7of6dv0hvoqtk6fputj4; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95xiwl4KiQtJhnoCN96g0EFJaEv6Qzy+BZpAjNHd92b65k0Hry81
|
||||
wkzWDUY3eVWUOZDujBz0o8mD70+X/MozVOSfRt7JTUY7ioVJWKEcz2CjCICzGAMtBOi8DZ1fGaJZ
|
||||
tWQ3AaiFIu688MEhW0Vq7PY0Ie7Az2UNtzUctPHQm6AlstRMRnZwIjumfY2mzmj5M1ua0I7Ey6Ks
|
||||
amRJ/Qtbt0qf3l8hS/dJ4Bb6vOYbV7CkU4YBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:06 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,161 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRTY7CMAyF95wi6n5IiAR0YcIBWIw0N0hTAxXND4mD5viUEgmEECCx+2z5+T3Z
|
||||
sP63PTthTJ13q2o2FRVDZ3zbud2qyrT9qau1moBF2vv2D1PwLuHQCDpqm9SEXWkABifdZ7wQg0Qx
|
||||
GxqZDWLbYLwWDJy2qMgf0AEfufRv6rJgiKAoSLld7IKp93Np9LKJdTczFI5z4GWkyPmdHvi95TP/
|
||||
RJpy+iCAFIL9br40Q+Nd+9Kt9bnpUYmpkMBL8c5rDFWufJsCXh5SIF3o8X1nyMpjPfcBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['224']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=tp22f6gpc8h52ca7br8i1ctpq5; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Ob09wZXJhdGlv
|
||||
bjwvbWV0aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz50cDIyZjZncGM4
|
||||
aDUyY2E3YnI4aTFjdHBxNTwvc3RyaW5nPjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21l
|
||||
dGhvZENhbGw+Cg==
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['181']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA71UQW6DMBC85xUW59Y2hEhFcsgDeqjUDyBjtolVY6fYTtvfF4gVQtKWRI16mzXj
|
||||
2dld1mz1USu0g8ZKo5dRjGmEQAtTSb1eRt693D9Eq3zGanAbUz2D3RptoT3Y8obXNp+hPWoBYjuu
|
||||
PHQIMesaL1yPUXu5LqHZB4hpXkNuHXfeMtIH4cNwPSi0HvKEUvT0yEgIA5UccRk51v8uWWXetTK8
|
||||
KpSspZvKevB9pnYQXCtTclUk6aYYa4+kz9S7A6ldVxMjHRh4ZEwc1/SzEaEkaFfI7XTi0MAswUlK
|
||||
cTJPcZykd2iBFzGe4zhdnPT4D676VhRiA+K1KD8vtuYtNH0pt/IRujMakzBeXzim+LZDOlh488bx
|
||||
Cy1k2W1N/N8v249x2KUrV9aCMLr6dVUr40sFOcV0njISoqlkx64GFiPhEQvAduj0yfsC3Y8tfSsF
|
||||
AAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['344']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=tp22f6gpc8h52ca7br8i1ctpq5; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+dHAyMmY2Z3BjOGg1MmNh
|
||||
N2JyOGkxY3RwcTU8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQ6DIBBF956CuK9QV12MeIAumvQGKNPWRKBhwPT4RSXRNE27e5/5M38YaF9m
|
||||
ZBN6GpxtymMlSoa2d3qw96aM4XY4la0swGB4OH1FejpLmB6eyitDsmArJWAwqTHiTAwo+NiHhVlq
|
||||
Nh36VTCwyqCkoEIk4IvIha09T0g7yFoIdjkDzzJb+c4LfD//axj2zuqfadrFbkQpKlEDz+Jf1rJU
|
||||
/uXmAp4PkoFm+jzfG9lJD213AQAA
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['192']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=tp22f6gpc8h52ca7br8i1ctpq5; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajQtNhnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
|
||||
MNHoOmvK/FjwHMg0VnXmUebBt4dLXokMNfmnVXdygzWO5sIgR6mdyGClGQAn2QdaCND5MTQ+Msxm
|
||||
XdO4CkAjNQnnpQ8OWRSpsdnThHkHceZXuMVwMNZDa4NRyFIzGdnOiWyf9jWaGmvUz2xlQ92T4AU/
|
||||
IUviX1ZcKv15e4UsnSeBW+jzmG8XBP1ahQEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['199']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,236 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WR0WrDMAxF3/sVJu+rvZbSDVT3A/Yw2B84trJkteUQ2Waf3zQ1tIyxDfZ2JHR1
|
||||
LxIcP4MXBSceIh2ax7VqBJKNbqD3Q5NT9/DUHPUKAqY+ujfkMRLj3BjNZALrlbjSDAKK8RkvJIDT
|
||||
lG1aWMzi0OJ0LQSQCahTPCGBXLj2b+q6YI6gi7cDtc+8cyMV/7HtOqv63rZFgawjVS7v9CDvLb/z
|
||||
52RS5j8E2CglXl/+aYY2kvvRzcXcetRqrTZ7kLX6zWxJVc98mwJZP1KBL/T1f2c8Qhe3+AEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['226']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=vlcinb9s5dpnvlj3ffc0hhcbv0; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+dmxjaW5i
|
||||
OXM1ZHBudmxqM2ZmYzBoaGNidjA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
|
||||
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjViOGY4ZjRlNDFjY2IyMWU8L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFuZ3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxz
|
||||
dHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1iZXI+CjxtZW1iZXI+CjxuYW1lPm1vdmll
|
||||
Ynl0ZXNpemU8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjcwMzM3MzI3MTQ8L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L21lbWJlcj4KPC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1ZT4KPC9w
|
||||
YXJhbT4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['543']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['4307']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=vlcinb9s5dpnvlj3ffc0hhcbv0; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+dmxjaW5iOXM1ZHBudmxq
|
||||
M2ZmYzBoaGNidjA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aXBgXQzmACxNvUOioJLQl/SEe3wJNIMbo7nudN/OmA81L
|
||||
D2RC53tralqVnBI0nVW9edQ0hvvhTBtRgMbwtOqGfrTGY3oYpZPai4KslIDAJIeIMxHwwcUuLExS
|
||||
s27RrYKAkRqFDzJED2wRubC15wlpB3HknFwvwLLMVrbzAtvP/xqGnTXqZ5qysR1Q8JJXJ2BZ/Qtb
|
||||
tsrf3FzA8kUy+Jk+7/cG7GWgnHgBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['194']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=vlcinb9s5dpnvlj3ffc0hhcbv0; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQrCMBCF9z3F0L1NBAWFaXoCN94gbaZaaJKSn+Lx7U+gRUR335vJmzcZrF66
|
||||
h5Gc76wp82PBcyDTWNWZR5nH0B4ueSUy1BSeVt3JD9Z4mgqDdFJ7kcFKEwCOso80E6APLjZhYZjM
|
||||
uia3CkAjNQkfZIge2SJSY7OnCdMO4sSvcFvCwdgArY1GIUvNZGQ7J7J92tdoaqxRP7OVjXVPghec
|
||||
n5El9S9s2Sp9enuFLN0ngZ/p85pvWwiPHoYBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,179 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WR3QrCMAyF732KsnttteAPZN0DeCH4Bt0Wdbg2rj/i4ztnQRFRwbsvISfnkEBx
|
||||
MS07o/MN2TybTkTG0FZUN3afZzHsxsusUCMwGA5Ub9GfyHrsGyfttPFqxO7UA4OzbiPeiIEPLlZh
|
||||
YNaLTYnuXjCw2qAKdEQLfODUf6jTgj6CWu6rMiwaNy1JdpLkqnMozNy1EngaSXL+pAf+bPnO3wcd
|
||||
ov8hwEwItln/aYYV2fqjW02xbFGJiZAr4Kn6ZjakSmd+TAFPH0ngb/T6vyuynISk+AEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['223']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=8gcbt7ir1bo3q3o39qre0m6rl3; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+OGdjYnQ3
|
||||
aXIxYm8zcTNvMzlxcmUwbTZybDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5pbWRiaWQ8
|
||||
L25hbWU+Cjx2YWx1ZT48aW50Pjc3MDgyODwvaW50PjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVy
|
||||
Pgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmluZz5nZXI8L3N0cmluZz48
|
||||
L3ZhbHVlPgo8L21lbWJlcj4KPC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1
|
||||
ZT4KPC9wYXJhbT4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['435']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA+1bW1PbOhB+76/w8O6b5JsybjqFwDmZkrYngZnTvim2HDT1JZVkKP31tY0DSShN
|
||||
FRD14fhNsmXp2/XuarXfKHzzLUu1S8I4LfLXB7ZhHWgkj4qY5ovXB6VI9ODgzfBVmBFxUcRTwpdF
|
||||
zkn1YIkZzvjwlXbTqhpaeInTktQtLeSClZFo2lr1cTYn7KajhTnOyJALLEoemk2nfXH3eTtDhWEI
|
||||
LEv78C4022471FwbG5rr8/9ssRgL/KulMGP4etXTwnr4bW9r7LZs7aONRbW1pSdYRBckPrzeWP+B
|
||||
mdfEplk8p/GW2Np94VeP7gN4GNN4NCvnk+KSkhOaEklglhpMDZy/Mb/oEJzDa0Fm9HuXNHRGMzKZ
|
||||
dQNQY0aCinQfM7KRC30vQAFQA66CVqN6X7UlkU1wbhSJMROEpMZfhGVVf3Rq2FZgLY3DtJzia+Mb
|
||||
8Bz9+N9/zumMnh0bnAllUryNRInTo5GsfpUB2sMjbAs5rqMM0R5hAxDP9VCEEmsOPQ+C2Iaej5AD
|
||||
IyeCTuIrw3qKuTiTdmAwAGDgKkJ158eSsFwAfBchNajOOWFjWatXFOma/5YvSrwg0pAWhKmLcEUV
|
||||
nYQkIJXBalZmHYpUb8sqZ2VHRZaRXFJL5tODieMRFrIuBiwb6ral275mwwHwBo6nTF2HOO6Mu02x
|
||||
qKaVhWOoAzQqrvK0wDE/kjWlIfCBor2vSQmnJCWYP0+mo1CMk4+yuyKABvIVucN41ICSDWUOhI6i
|
||||
eNYiGlfnQklUvm8FIFD46/YzPa1ItMb0FCM7lo0jTxz7GyCfCGZ7hH6FqqkNaa8o6xsKj2wEi5KR
|
||||
juxDdQr6nkZf5O37iU1oPPvgQSSplJio0coqE97D62/2GGXW02Z6vBvWUx9MK6+v5h1nS0zlrVrR
|
||||
RlJb9RTnX/5sQkwYJXxWJS5F3pHf1SA6XlJexF2q+L2juazhZDepiyqj7soBr/lh48no8CNm0gc8
|
||||
hV5/3NInkoDOz050RVna2vnllMp6/vBCiOXANOPUKJYk522tiBsFW5gkN+N2ZjOh1UEkNjmLdLyk
|
||||
5iVLdOg5JEEOsKrHNNaDRTQXPmX2vIBfYQHRV0aszGMpNO/qwcbiuxotfKbLZ9BC9WZLCR4C2I08
|
||||
17V3KUFpQW1V5OP7C391dfVz6W8frETYJWmVBuhFovM6/9cflak0n27Qcfe+6xm8DWA9g/cnIb0s
|
||||
Bs+3HUtdvHpCBs8HPXu3J3uHXOR3irxDgR9Fno9hQEBkBTBIsONDx4HAtYAXKaqaPIK8s8HAUYTq
|
||||
MeQdQkhRwtmTd7tB9eTd/4a8Q5plDVw4AG5P3v3HyLvAUlmEf1ru7uEcp+ftet5uA1XP2/0ekJ63
|
||||
2w2r5+163u5R1vPCeDuFVt3zdg8g6nm7HVrqebudCup5u1vKKrB8F8+9mOykrO6qwC+Ot3PhHCQQ
|
||||
+Yn3G7ydulras/F2tQhd4u1Cc/0iXmiu39KTvADISVTk8S+vG8ZFOU9JXYZwq4yt7e1abF2Iu1Gh
|
||||
2V6JbBu8bm1foPwBuoAQ33k5AAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['1160']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=8gcbt7ir1bo3q3o39qre0m6rl3; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+OGdjYnQ3aXIxYm8zcTNv
|
||||
MzlxcmUwbTZybDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6DIBCF956CsK9gVy5GPEAXTXoDlGlrImD4MT1+UUk0TdPuvse8mTcMtC89
|
||||
khmdH6xpaFVyStD0Vg3m0dAY7qeatqIAjeFp1Q39ZI3H9DBJJ7UXBdkoAYFZjhEXIuCDi31YmaRm
|
||||
3aHbBAEjNQofZIge2CpyYW/PE9IO4sw5uV6AZZmt7OAFdpz/NQx7a9TPNGVjN6LgJa9qYFn9C1u3
|
||||
yt/cXcDyRTL4hT7v9waS3YSheAEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['193']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=8gcbt7ir1bo3q3o39qre0m6rl3; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQrCMBCF9z3F0L1NBEGFaXoCN94gbaZaaJKSn+Lx7U+gRUR335vJmzcZrF66
|
||||
h5Gc76wp82PBcyDTWNWZR5nH0B4ueSUy1BSeVt3JD9Z4mgqDdFJ7kcFKEwCOso80E6APLjZhYZjM
|
||||
uia3CkAjNQkfZIge2SJSY7OnCdMO4sSvcFvCwdgArY1GIUvNZGQ7J7J92tdoaqxRP7OVjXVPghec
|
||||
n5El9S9s2Sp9enuFLN0ngZ/p85pvZO5o2IYBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,118 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRSw7CMAxE95wi6p4m/Lsw4QAskLhB2hgobRKoE8TxaUskEEKAxO7Z8nhGNqyu
|
||||
pmYXbKh0dpmMUpEwtIXTpd0vk+B3wyxZyQEY9Aent0gnZwnbxkk1ypAcsDu1wOCi6oAdMSDfhML3
|
||||
zFqxybG5FwysMii9q9AC7zn2H+q4oI0gK68W2axemGm1y/dlSUTH80zbMAceR6KcP+mBP1u+8yev
|
||||
fKAfAoyFYJv1n2ZYOKs/umkX8hqlSMUkAx6rb2Z9qnjmxxTw+JEI1NHr/27BtBTn+AEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['223']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=kta785l7m4kfbgiisssjq5dnu6; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+a3RhNzg1bDdtNGtmYmdp
|
||||
aXNzc2pxNWRudTY8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ7CIBCF9z0FYW/Bn4WLKT2ACxNvQMuoTQo0/DQeX9qStDFGd99j3swbBuqX
|
||||
7smIznfWVHRfckrQtFZ15lHRGO67M61FARrD06ob+sEaj+lhkE5qLwqyUAICo+wjTkTABxfbMDNJ
|
||||
zbpBtwgCRmoUPsgQPbBZ5MLaniekHcSBc3K9AMsyW9nGC2w7/2sYttaon2nKxqZHwUt+OgLL6l/Y
|
||||
vFX+5uoCli+SwU/0eb83VqoNRHgBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['194']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:59 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=kta785l7m4kfbgiisssjq5dnu6; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajQtNhnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
|
||||
MNHoOmvK/FjwHMg0VnXmUebBt4dLXokMNfmnVXdygzWO5sIgR6mdyGClGQAn2QdaCND5MTQ+Msxm
|
||||
XdO4CkAjNQnnpQ8OWRSpsdnThHkHceZXuMVwMNZDa4NRyFIzGdnOiWyf9jWaGmvUz2xlQ92T4AU/
|
||||
IUviX1ZcKv15e4UsnSeBW+jzmG8XBP1ahQEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['199']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:59 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,180 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WR3QrCMAyF732KsnttNxAUYvcAXgi+QbdFHeuPNu3w8d1mQRFRwbsvISfnkEB5
|
||||
NZr16Kl1dpPlC5ExtLVrWnvcZDEc5quslDMwGE6u2SOdnSUcGmfllSE5Y3cagEGvdMSRGFDwsQ4T
|
||||
s0FsKvT3goFVBmVwHVrgE6f+Q50WDBGkyNsurquYe6yUPnrqdFH4w8UI4GkkyfmTHviz5Tt/CipE
|
||||
+iFAIQTbbf80w9rZ5qNb42KlUYqFyJfAU/XNbEqVzvyYAp4+koBGev3fDfr5gRn4AQAA
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['222']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=01iku9bu1rebalgrskl22rfqm0; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MDFpa3U5
|
||||
YnUxcmViYWxncnNrbDIycmZxbTA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5zZWFzb248
|
||||
L25hbWU+Cjx2YWx1ZT48aW50PjE8L2ludD48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5h
|
||||
bWU+cXVlcnk8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPkRhbGxhczwvc3RyaW5nPjwvdmFsdWU+Cjwv
|
||||
bWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5lcGlzb2RlPC9uYW1lPgo8dmFsdWU+PGludD4zPC9pbnQ+
|
||||
PC92YWx1ZT4KPC9tZW1iZXI+CjxtZW1iZXI+CjxuYW1lPnN1Ymxhbmd1YWdlaWQ8L25hbWU+Cjx2
|
||||
YWx1ZT48c3RyaW5nPmZyZTwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8L3N0cnVjdD48L3Zh
|
||||
bHVlPgo8L2RhdGE+PC9hcnJheT48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['575']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA81aS3PiOBC+z69wZau2dg9+2xhYD1NJCLXU5MGGzGH2JlsNqOLXSHIS5tevbExg
|
||||
CAwlNtr1iZYtq79uuj+1HuGnlzTRnoAykmcfz2zDOtMgi3NMsvnHs5LP9O7Zp8GHMAW+yPE9sCLP
|
||||
GIgHBaIoZYMP2koSghY+oaSEStJCxmkZ81rWxMdpBHTV0MIMpTBgHPGShWbdaF5sPm9GEBgGjmVp
|
||||
d59Ds2k2Xc2tvqG5Pf4+ZRhx9DNViFK0XLe0sOr+2trpu2tb8+gHpdqW6hvE4wXgi+UP+g+MvGX2
|
||||
rEwSDi98x3DtrfnrR28hHEY1Hk7L6CZ/IjAiCUhCs9RgquH8idiiRXAulhym5HubPPRAUriZtgNQ
|
||||
HUac8OSUMLJ7vmt7gR8EasAJaBWqWyFLIhuiJEFM+82xbOd3Tdcs+8Vyxe/DArQJJTFoX/NSm6Cl
|
||||
8eJ0PP367toYUUGaC+PSKAvBHoCNc4xJHAghzlODUUV5LGw8j3mJksuhrPeVATohX3zHttUBOoFT
|
||||
POxas6gDsRt4TjDzUewHXS/y7BkOXLsTKcN6jRh/kM5uq+/ZfVeRBzdJLutEv2vbrqcG1RcGdCwb
|
||||
9IposP7fsnmJ5iANaUZBHf3lNEVcEpBKrpqWaYuI6rwUJS29zNMUMkkvme8PBuOhmDgknVPNULrV
|
||||
0R1bszt9z+07HWXuukC4Nel2j7gYVhaOoQ7QMH/OkhxhdikbSgPP8xWWi/eQAGJtqIIUGjmayE6Z
|
||||
jmv0AkW5Mh7WoGR5zrWCXk8ponGKI1k/OZbvqyKVGtQJkfnrL673xyo8a/FtSCrGeyXLPe88X9RA
|
||||
vgKiJ0wXCl1TxddJzNxVyMwjQLyk0JK5qypbb0n8KB/17xxC4+ldx+1JF6tqvLKunk/ggtWUoyx6
|
||||
muqQtSN6qsWsyHox7jgtEGlVVN+j7PH/LaKBEmBTUe3kWUvWGDWiq4KwHMvGtauQpz+TTDZwYG2E
|
||||
qrBuy1K+/svGN8OLCaLSy8KBHThu0FGX/VfNyYwkrC8PI72rBtRfJdDlpDoBAg5Uhid3jlAOaHlV
|
||||
xA4l9gEVW+bvT+/91h9wwDF03yo3nARuVceqRwgHaeg4xv1k9K7wWBklTRVA9pHTcZCHdtIkYdZj
|
||||
7Mbm+6TJbVm9bQnRbfYsronszD1YcF70TRMnRl5Axpr9YWbkdG5CZuJmZHNGEhA/jMY6Koj5RGe6
|
||||
FaCe44KNwGQE65ZNHsteVNoUIpTMKXtMHIfOvqWWuTkgMubf1Xjhb1L8B14Qb3ac4Md2z+5FMzc4
|
||||
5gSlm+jrjX12uvHPz8/7rX99sDbhmKW4JkKdL0AvqrW8vsxLvUBL/V+tOt6m8+53obl93h+a25cB
|
||||
JO8ZMIjzDP/0VgPOBdFBtRfpdYTmVeuYsm0jNr1Cs7l50QisknbvafwDNanaROAhAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['1076']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=01iku9bu1rebalgrskl22rfqm0; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MDFpa3U5YnUxcmViYWxn
|
||||
cnNrbDIycmZxbTA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQ6DIBBF956CuK9gV12MeIAumvQGKNPWRKBhwPT4RSXRNE27e5/5M38YaF9m
|
||||
ZBN6GpxtyroSJUPbOz3Ye1PGcDucylYWYDA8nL4iPZ0lTA9P5ZUhWbCVEjCY1BhxJgYUfOzDwiw1
|
||||
mw79KhhYZVBSUCES8EXkwtaeJ6Qd5FEIdjkDzzJb+c4LfD//axj2zuqfadrFbkQpKlEDz+Jf1rJU
|
||||
/uXmAp4PkoFm+jzfG9nfIyV3AQAA
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['192']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=01iku9bu1rebalgrskl22rfqm0; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQqDMBBF955icF8TodAWpvEE3fQG0YytYBIxifT41RhQSml378/kz58MVi/d
|
||||
w0Sj66y55mXBcyDTWNWZxzUPvj2c80pkqMk/rbqTG6xxNBcGOUrtRAYrzQA4yT7QQoDOj6HxkWE2
|
||||
65rGVQAaqUk4L31wyKJIjc2eJsw7iCO/wC2Gg7EeWhuMQpaaych2TmT7tK/R1FijfmYrG+qeBC94
|
||||
eUKW1L+wuFX69PYKWbpPArfQ5zXfKQiAboYBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,194 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRTY7CMAyF95wi6h4SEBSQTDjALEbiBmlrftTGRolTzfGnlEig0WgGid1ny8/v
|
||||
yYb9l+9UjyFemHbFfGYKhVRzc6HTrkhynG6KvZ2ARzlzc8B4ZYo4NK4uOB/tRN1pAAW96xLeSEGU
|
||||
kGoZWQ1iX2G4FwrIebTCLRLokXP/oc4Lhgi2nwcO/boNC14uxVfldiuupA2VoPNIlusnPehny9/8
|
||||
ozhJ8YUAC2PU58ebZlgzNX+6NZyqDq2ZmXIFOlf/mY2p8pkfU6DzRzLEG/383zd4HFDf+AEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['226']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:53:59 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=v1rorv7kr2o44tmb699ta6n8n6; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+djFyb3J2
|
||||
N2tyMm80NHRtYjY5OXRhNm44bjY8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5xdWVyeTwv
|
||||
bmFtZT4KPHZhbHVlPjxzdHJpbmc+TWFuIG9mIFN0ZWVsPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1i
|
||||
ZXI+CjxtZW1iZXI+CjxuYW1lPnN1Ymxhbmd1YWdlaWQ8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPmZy
|
||||
ZTwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8L3N0cnVjdD48L3ZhbHVlPgo8L2RhdGE+PC9h
|
||||
cnJheT48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['446']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['2028']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=v1rorv7kr2o44tmb699ta6n8n6; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+djFyb3J2N2tyMm80NHRt
|
||||
YjY5OXRhNm44bjY8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ7CIBCF9z0FYW/Bn4WLKT2ACxNvQMuoTQo0/DQeX9qStDFGd99j3swbBuqX
|
||||
7smIznfWVHRfckrQtFZ15lHRGO67M61FARrD06ob+sEaj+lhkE5qLwqyUAICo+wjTkTABxfbMDNJ
|
||||
zbpBtwgCRmoUPsgQPbBZ5MLaniekHcSBc3K9AMsyW9nGC2w7/2sYttaon2nKxqZHwUt+PAHL6l/Y
|
||||
vFX+5uoCli+SwU/0eb83CEnn7HgBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['194']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=v1rorv7kr2o44tmb699ta6n8n6; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQrCMBCF9z3F0L1NBEGFaXoCN94gbaZaaJKSn+Lx7U+gRUR335vJmzcZrF66
|
||||
h5Gc76wp82PBcyDTWNWZR5nH0B4ueSUy1BSeVt3JD9Z4mgqDdFJ7kcFKEwCOso80E6APLjZhYZjM
|
||||
uia3CkAjNQkfZIge2SJSY7OnCdMO4sSvcFvCwdgArY1GIUvNZGQ7J7J92tdoaqxRP7OVjXVPghec
|
||||
n5El9S9s2Sp9enuFLN0ngZ/p85pvZO5o2IYBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,181 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRwQrCMAyG7z5F2V1bN2UeYn0AD4Jv0G1xG7bpWNvh4ztnQRFRwduXkD//TwK7
|
||||
i9FswN61lrbJciEShlTaqqV6mwR/mm+SnZyBQd/Y6oius+RwbHSqV8bJGbvTCAwGpQPeiIHzfSj9
|
||||
xGwUmwL7e8GAlEHp7RkJ+MSx/1DHBWMEqds26wpqOsI6x7VO66LJTvna58DjSJTzJz3wZ8t3/s4r
|
||||
H9wPAVIh2GH/pxmWlqqPbpUNhUYpFiJdAY/VN7MpVTzzYwp4/EgEd6PX/10BKf3ITPgBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['224']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=lii3pbnhpneg7e5l2gbh3f75t7; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+bGlpM3Bi
|
||||
bmhwbmVnN2U1bDJnYmgzZjc1dDc8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5zZWFzb248
|
||||
L25hbWU+Cjx2YWx1ZT48aW50Pjc8L2ludD48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5h
|
||||
bWU+cXVlcnk8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPlRoZSBCaWcgQmFuZyBUaGVvcnk8L3N0cmlu
|
||||
Zz48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+ZXBpc29kZTwvbmFtZT4KPHZhbHVl
|
||||
PjxpbnQ+NTwvaW50PjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFn
|
||||
ZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmluZz5nZXI8L3N0cmluZz48L3ZhbHVlPgo8L21lbWJlcj4K
|
||||
PC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1ZT4KPC9wYXJhbT4KPC9wYXJh
|
||||
bXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['588']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA81aW3PaOBR+76/wZGf2Zcd3wDZ16RRIt0wLoYF2L28yOhhNfFtJTkJ//cqOSSiB
|
||||
MmKjLk+WZFnnO8fnfDq6hG/v00S7BcpInr25sA3rQoNskWOSxW8uSr7U/Yu3vVdhCnyV42tgRZ4x
|
||||
EA0FoihlvVfaQ0kUtPAWJSVUJS1knJYLXpc18XEaAX2oaGGGUugxjnjJQrOuNC+ePm9GEBh6jmVp
|
||||
Vx9Ds6k2Xc2tvqG5Pf4+YRhx9CNRiFK03tS0sOr+WNvpu6tb0/SdUG1L9BjxxQpwf/2d/AMjb6m9
|
||||
LJOEwz3fUVx7rv6m6TmEw6hGw1kZjfNbAu9JApLQLDWYajgfEFudEZz+msOMfDsnC81JCuPZeQCq
|
||||
3YgTnpziRnbQdj3PDixfDTgBrUI1EWVJZPMVGH0SG32UxYao5HRtzCzv0mobnmMVxofh/Kvxp9Np
|
||||
6cPR+HIyG11NDAz6bPDb/Gvri8GooqgVGr1b8BIlg6GsrZUBOiE6nMAL1AE6gUHwMvAcvxWhoBME
|
||||
ju9YXoAiFy/coOO3lhgpw/oJMT6XjmWra/vdVqA6pCVhtR3XaluKiOYLAzqSdXpFWOr/lsUlikEa
|
||||
UgxUHdnlNEVcEpBKrpqV6RkR1btSJLB0kKcpZJJWMl8eDMZDxKWJ07Jd3bZ0O9Bsu9v2u46jzFx9
|
||||
hM8m3K4RF8PKwjHUARrmd1mSI8wGsq7UC/yOIuaus8NrSACxn5/0KFTp/VR2hnRcI/A6qubHGpQs
|
||||
rXUst+MpRTRKcSSJynWcwA0UcUgN6gQ//PUXt/Va+J8mnFGrnFF7cMa6vSprf+T0pkjQArQpze9J
|
||||
SvhasQqXsuzzwjNGDeQvQPSECUOhaSqXO4mbPUMRB1ZpECBeUjiT2atKXCdkcSMfCC/sQqPZVccN
|
||||
ZBdGoMYqm/z5BHr4HUSWmynzniY/ZOfhPdVyVkS9GHeUFoiclVdfo+zm/02jgRJgM5Hu5Jks/yj6
|
||||
XTWiy4KwHEsvnxXy9EeSyToObJRQ5dbnsjCsf9loPOxPEZVeGPb8wHc6ijJNYaXL5iBGEtVgajtt
|
||||
RWnd5xLoelqd+AAHKsOTO0cmB6Q8CmKHAvuAiC3994f3fu0PGOAYun8qM5wEbk9qqx4uHOSk44D3
|
||||
M9OLwmNllDQpAdnHVMdBHtpYk4RZj7HrqC8TM5Oyense8/fWFsYnIjuN91acF13TxImRF5CxZruY
|
||||
GTmNTchM3IxsLkkC4sHoQkcFMW/pUrcjLwoQtvDCZATrCSFuEWWrIoPYg3bixNHKXXpt7plPp0NG
|
||||
/E2NFf4mxU+wgnizYwR/ucS+32l7wTEjKN1T3+zzs9OVv7u726/9Y8NGhWOa8hXoEYn1SNCAzmtW
|
||||
rB763Watrxebtb7+n9KS5xG++11obp//h+b25QDJewcMFnmGf3jLAeeC+6BnGbbbEpIfaseEbSvx
|
||||
1Cs0m5sYTYFVpd17G/8CwkOcZPAhAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['1106']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=lii3pbnhpneg7e5l2gbh3f75t7; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+bGlpM3BibmhwbmVnN2U1
|
||||
bDJnYmgzZjc1dDc8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aiQsXQzmACxNvUOioJLQl/SEe3wJNIMbo7nudN/OmA81L
|
||||
D2RC53tranosOSVoOqt686hpDPfDmTaiAI3hadUN/WiNx/QwSie1FwVZKQGBSQ4RZyLgg4tdWJik
|
||||
Zt2iWwUBIzUKH2SIHtgicmFrzxPSDqLinFwvwLLMVrbzAtvP/xqGnTXqZ5qysR1Q8JJXJ2BZ/Qtb
|
||||
tsrf3FzA8kUy+Jk+7/cGRa8PWngBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['194']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=lii3pbnhpneg7e5l2gbh3f75t7; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajAtNxnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
|
||||
MNHoOmuueVnwHMg0VnXmcc2Dbw/nvBIZavJPq+7kBmsczYVBjlI7kcFKMwBOsg+0EKDzY2h8ZJjN
|
||||
uqZxFYBGahLOSx8csihSY7OnCfMO4sQvcIvhYKyH1gajkKVmMrKdE9k+7Ws0Ndaon9nKhronwQt+
|
||||
LJEl9S8sbpU+vb1Clu6TwC30ec03vwiR/oYBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['200']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,164 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
|
||||
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
|
||||
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
|
||||
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRwQrCMAyG7z5F2V1bJ4iH2D2AB8E3qG02xbWdTTt8fOcsKCIqePsS8uf/SaC6
|
||||
2Jb1GOjo3bqYz0TB0Glvjq5ZFynW01VRyQlYjAdvdkidd4RDo1NBWZITdqcBGPSqTXgjBhRD0nFk
|
||||
NojtHsO9YOCURRn9CR3wkXP/oc4LhgjSLJpOn71qNS4tLeuQytC4etGXwPNIlvMnPfBny3f+FFVM
|
||||
9EOAUgi23fxphto789HN+LRvUYqZmAPPxTevMVS+8mMKeH5IBrrR6/uu3BshtfcBAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['221']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=d3gpcqoalce6ms6fru2rgnf3v2; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
|
||||
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZDNncGNx
|
||||
b2FsY2U2bXM2ZnJ1MnJnbmYzdjI8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
|
||||
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
|
||||
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjEyMzQ1Njc4NzY1NDMyMTwvc3RyaW5nPjwvdmFsdWU+
|
||||
CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0
|
||||
cmluZz5lbmc8L3N0cmluZz48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+bW92aWVi
|
||||
eXRlc2l6ZTwvbmFtZT4KPHZhbHVlPjxzdHJpbmc+OTk5OTk8L3N0cmluZz48L3ZhbHVlPgo8L21l
|
||||
bWJlcj4KPC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1ZT4KPC9wYXJhbT4K
|
||||
PC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['537']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA52RTQ6CMBCF95yiYS+thoWLoR7AhYk3KHRUEtoSpiUeX35qIMZg4u577Zt5nSmc
|
||||
nqZhPXZUO1uk+0ykDG3ldG3vRRr8bXdMTzIBg/7h9BWpdZZwOGhVpwzJhM00AINeNQFHYkC+C5Wf
|
||||
mA3FpsRuFgysMijJKx8I+CTixVIeOwxvkAch2OUMPMpo5Ssv8HX/b2FaebUVVTrXoLJSAH/jXzmE
|
||||
lbN6cyrtQtmgFJnIc+BR/Qqbpo/rXFzA4+Yj0Eif//QCLseBQ+ABAAA=
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['212']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=d3gpcqoalce6ms6fru2rgnf3v2; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
|
||||
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZDNncGNxb2FsY2U2bXM2
|
||||
ZnJ1MnJnbmYzdjI8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
|
||||
YWxsPgo=
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aceNiKAdwYeINCh2VhLakP8TjW6AJxBjdfa/zZt50oHnp
|
||||
gUzofG9NTY8lpwRNZ1VvHjWN4X4400YUoDE8rbqhH63xmB5G6aT2oiArJSAwySHiTAR8cLELC5PU
|
||||
rFt0qyBgpEbhgwzRA1tELmzteULaQVSck+sFWJbZynZeYPv5X8Ows0b9TFM2tgMKXvLqBCyrf2HL
|
||||
VvmbmwtYvkgGP9Pn/d56851EeAEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['193']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
|
||||
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
Pragma: [no-cache]
|
||||
Server: [lighttpd/1.4.35]
|
||||
Set-Cookie: [PHPSESSID=d3gpcqoalce6ms6fru2rgnf3v2; path=/; domain=.opensubtitles.org]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: !!binary |
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
|
||||
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [Python-xmlrpc/3.4]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajQtNhnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
|
||||
MNHoOmvK/FjwHMg0VnXmUebBt4dLXokMNfmnVXdygzWO5sIgR6mdyGClGQAn2QdaCND5MTQ+Msxm
|
||||
XdO4CkAjNQnnpQ8OWRSpsdnThHkHceZXuMVwMNZDa4NRyFIzGdnOiWyf9jWaGmvUz2xlQ92T4AU/
|
||||
IUviX1ZcKv15e4UsnSeBW+jzmG8XBP1ahQEAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
Access-Control-Allow-Origin: ['*']
|
||||
Age: ['0']
|
||||
Content-Encoding: [gzip]
|
||||
Content-Length: ['199']
|
||||
Content-type: [text/xml;charset=UTF-8]
|
||||
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
|
||||
Server: [lighttpd/1.4.35]
|
||||
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
|
||||
X-Cache: [MISS]
|
||||
X-Cache-Backend: [web3]
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [DENY]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,757 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>12</results></pagination><subtitle><id>2738264</id><pid>WMgp</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/WMgp</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>Man.Of.Steel.2013.EXTRAS.BONUS.DISC.720p.BluRay.DTS.x264-PublicHD:
|
||||
publichd.EXTRAS.Journey.Of.Discovery.Creating.Man.Of.Steel.720p publichd.EXTRAS.Planet.Krypton.720p</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1385011759</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>1766</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>2681136</id><pid>MOko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/MOko</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>publichd.EXTRAS</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382420144</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>4605</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>2672974</id><pid>Tsko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Tsko</url><uploaderId>144401</uploaderId><uploaderName>flax</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
|
||||
Man.Of.Steel.2013.720p.BluRay.x264-Felony.[PublicHD]. Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7.
|
||||
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER. Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG.
|
||||
Man.Of.Steel.(2013).BDRip.600MB.Ganool. Man.of.Steel.2013.BDRip.x264.700MB-Micromkv.
|
||||
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD. Man.Of.Steel.2013.BDRip.x264-Larceny.
|
||||
Man.Of.Steel.2013.BDRiP.XViD-NoGRP. Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO.
|
||||
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG. Man.Of.Steel.[2013].BRRip.XviD-ETRG.
|
||||
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG. Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC.
|
||||
Man.of.steel.2013.BRRip.XviD.AC3-RARBG. Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N.
|
||||
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381874511</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>10147</downloads><exactHashes>sublight:44b92527dbc1d9a73bfb02990c41ffa1
|
||||
sublight:391ae5c74ab8ab8f93f9875d236a672b sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2672656</id><pid>EMgo</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/EMgo</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
|
||||
Man.Of.Steel.2013.720p.BluRay.x264-Felony Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7
|
||||
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG
|
||||
Man.Of.Steel.(2013).BDRip.600MB.Ganool Man.of.Steel.2013.BDRip.x264.700MB-Micromkv
|
||||
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD Man.Of.Steel.2013.BDRip.x264-Larceny
|
||||
Man.Of.Steel.2013.BDRiP.XViD-NoGRP Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO
|
||||
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG Man.Of.Steel.[2013].BRRip.XviD-ETRG
|
||||
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC
|
||||
Man.of.steel.2013.BRRip.XviD.AC3-RARBG Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N
|
||||
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON Man.Of.Steel.2013.720p.BRRip.x264.AC3-JYK
|
||||
Man.of.Steel.[2013].DVDRIP.DIVX.[Eng]-DUQA® Man.of.Steel.2013.1080p.BluRay.x264.YIFY</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381852391</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>11139</downloads><exactHashes>sublight:bb6b91e12f876eecbf86ca6a296807a7
|
||||
sublight:e5c4c23d90498eb7482b1f016ff39e92 sublight:1858614a80929a54653e95d50f8accc1</exactHashes></subtitle><subtitle><id>2667828</id><pid>NLUo</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/NLUo</url><uploaderId>86327</uploaderId><uploaderName>mixi69</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381502479</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>1544</downloads><exactHashes /></subtitle><subtitle><id>2525113</id><pid>uYcm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/uYcm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA®</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373611040</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>2770</downloads><exactHashes /></subtitle><subtitle><id>2524778</id><pid>aoYm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/aoYm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Superman.Man.of.Steel.2013.480p.R6.LiNE.x264.AAC-DAMN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373589100</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>8518</downloads><exactHashes /></subtitle><subtitle><id>2520414</id><pid>XnUm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/XnUm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.(2013).720p.R6.LiNE.900MB.Ganool</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373391411</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>4222</downloads><exactHashes /></subtitle><subtitle><id>2515558</id><pid>ZmIm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/ZmIm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373141422</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>5565</downloads><exactHashes /></subtitle><subtitle><id>2495682</id><pid>whQm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/whQm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.CAM.XviD.MP3.MiLLENiUM</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372075950</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>6276</downloads><exactHashes /></subtitle><subtitle><id>2495217</id><pid>8RIm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/8RIm</url><uploaderId>26933</uploaderId><uploaderName>asdasd</uploaderName><release>Man.Of.Steel.2013.CAM.XViD-CALiBRATE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372047356</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>5048</downloads><exactHashes /></subtitle><subtitle><id>2489654</id><pid>Nv0l</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Nv0l</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.CAM.NEW.AUDiO.XViD-JUSTiCE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1371805723</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>7480</downloads><exactHashes /></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['11082']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>2</results></pagination><subtitle><id>2673432</id><pid>GMso</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/GMso</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.BDRip.x264-Larceny</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1381991887</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>3899</downloads><exactHashes>sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2552439</id><pid>d_Im</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/d_Im</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.TS.XviD-JUSTiCE
|
||||
Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1374819034</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>4279</downloads><exactHashes /></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['2785']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/GMso/download?container=zip
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/GMso/download?container=zip']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/GMso/download?container=zip
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
AAEAXQAAABF8AAAAAA==
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Connection: [keep-alive]
|
||||
Content-Disposition: [attachment; filename="78b9e7505fc4b675bbdff555d95e1443e3ba1653.zip"]
|
||||
Content-Length: ['31876']
|
||||
Content-Type: [application/octet-stream]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
|
||||
ETag: ['"525f5570-7c84"']
|
||||
Last-Modified: ['Thu, 17 Oct 2013 03:11:44 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,160 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sTS=3&sL=en&sTE=10&sXML=1&sK=Game+of+Thrones
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=en&sTE=10&sXML=1&sK=Game+of+Thrones']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=en&sTE=10&sXML=1&sK=Game+of+Thrones
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>10</results></pagination><subtitle><id>3953259</id><pid>a1I8</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/a1I8</url><uploaderId>None</uploaderId><uploaderName
|
||||
/><release>Game.of.Thrones.S03E10.720p.BluRay.450MB.ShAaNiG.com Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb
|
||||
Game.of.Thrones.S03E10.720p.BluRay.450MB.ShAaNiG.com.srt</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1436203578</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>23</downloads><exactHashes /></subtitle><subtitle><id>3740656</id><pid>8BM5</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/8BM5</url><uploaderId>23329</uploaderId><uploaderName>jane</uploaderName><release>Game.Of.Thrones.S03E10.720p.x264-ILPruny</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1420528825</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>1093</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>2911594</id><pid>am0s</pid><title>Game of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/am0s</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>game.of.thrones.s03e10.bdrip.x264-demand</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1392415949</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>n</flags><new_flags><flag>hearing_impaired</flag></new_flags><downloads>3444</downloads><exactHashes>sublight:1253562ba785425176701686b7452a73</exactHashes></subtitle><subtitle><id>2533905</id><pid>Eaom</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/Eaom</url><uploaderId>63492</uploaderId><uploaderName>Rafael4</uploaderName><release>Game.Of.Thrones.S03E10.1080p.WEB-RiP.x264.anoXmous</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373986843</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>4720</downloads><exactHashes>sublight:a5a45e8c236f271840123ea8268da767</exactHashes></subtitle><subtitle><id>2475668</id><pid>lMYl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/lMYl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.H.264-NTb
|
||||
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN
|
||||
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.AAC2.0.H.264-YFN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370985771</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>9269</downloads><exactHashes>sublight:9f69fd76f1e5c7ab688a70f1fe463ec7
|
||||
sublight:a5a45e8c236f271840123ea8268da767</exactHashes></subtitle><subtitle><id>2475674</id><pid>msYl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/msYl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.H.264-NTb
|
||||
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN
|
||||
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.AAC2.0.H.264-YFN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370985492</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>5918</downloads><exactHashes>sublight:da1ce34e0e82dd0971176d60f1f80b2e</exactHashes></subtitle><subtitle><id>2474991</id><pid>78Ml</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/78Ml</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
|
||||
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
|
||||
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370850866</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>14912</downloads><exactHashes>sublight:abb28aefd1ca56458901371447fec372</exactHashes></subtitle><subtitle><id>2474990</id><pid>7sMl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/7sMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
|
||||
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
|
||||
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370850847</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>39570</downloads><exactHashes>sublight:9b52a2dd794f64ea8262b67ee0766a88
|
||||
sublight:1d01a67ecc7e2504b122c02a2e1ae0f2</exactHashes></subtitle><subtitle><id>2474960</id><pid>0MMl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/0MMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.HDTV.x264-EVOLVE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370840356</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>n</flags><new_flags><flag>hearing_impaired</flag></new_flags><downloads>12335</downloads><exactHashes>sublight:33850fc19e55ce536f5a436f90eea557
|
||||
sublight:cea810fe8295c80c43308873d2bde5e9</exactHashes></subtitle><subtitle><id>2474959</id><pid>z8Ml</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/z8Ml</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.HDTV.x264-EVOLVE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370840316</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags /><new_flags
|
||||
/><downloads>26909</downloads><exactHashes>sublight:abb28aefd1ca56458901371447fec372</exactHashes></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['9836']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sTS=3&sL=fr&sTE=10&sXML=1&sK=Game+of+Thrones
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=fr&sTE=10&sXML=1&sK=Game+of+Thrones']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=fr&sTE=10&sXML=1&sK=Game+of+Thrones
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>4</results></pagination><subtitle><id>2475667</id><pid>k8Yl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/k8Yl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.H.264-NTb
|
||||
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN
|
||||
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.AAC2.0.H.264-YFN</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370985775</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>1917</downloads><exactHashes /></subtitle><subtitle><id>2475661</id><pid>jcYl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/jcYl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
|
||||
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
|
||||
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370985506</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>1598</downloads><exactHashes /></subtitle><subtitle><id>2474993</id><pid>8cMl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/8cMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
|
||||
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
|
||||
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
|
||||
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370851348</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>5273</downloads><exactHashes>sublight:abb28aefd1ca56458901371447fec372</exactHashes></subtitle><subtitle><id>2474984</id><pid>6MMl</pid><title>Game
|
||||
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/6MMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.HDTV.x264-EVOLVE</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370848797</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>3814</downloads><exactHashes /></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['4874']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,160 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>12</results></pagination><subtitle><id>2738264</id><pid>WMgp</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/WMgp</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>Man.Of.Steel.2013.EXTRAS.BONUS.DISC.720p.BluRay.DTS.x264-PublicHD:
|
||||
publichd.EXTRAS.Journey.Of.Discovery.Creating.Man.Of.Steel.720p publichd.EXTRAS.Planet.Krypton.720p</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1385011759</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>1766</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>2681136</id><pid>MOko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/MOko</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>publichd.EXTRAS</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382420144</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>4605</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>2672974</id><pid>Tsko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Tsko</url><uploaderId>144401</uploaderId><uploaderName>flax</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
|
||||
Man.Of.Steel.2013.720p.BluRay.x264-Felony.[PublicHD]. Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7.
|
||||
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER. Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG.
|
||||
Man.Of.Steel.(2013).BDRip.600MB.Ganool. Man.of.Steel.2013.BDRip.x264.700MB-Micromkv.
|
||||
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD. Man.Of.Steel.2013.BDRip.x264-Larceny.
|
||||
Man.Of.Steel.2013.BDRiP.XViD-NoGRP. Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO.
|
||||
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG. Man.Of.Steel.[2013].BRRip.XviD-ETRG.
|
||||
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG. Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC.
|
||||
Man.of.steel.2013.BRRip.XviD.AC3-RARBG. Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N.
|
||||
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381874511</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>10147</downloads><exactHashes>sublight:44b92527dbc1d9a73bfb02990c41ffa1
|
||||
sublight:391ae5c74ab8ab8f93f9875d236a672b sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2672656</id><pid>EMgo</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/EMgo</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
|
||||
Man.Of.Steel.2013.720p.BluRay.x264-Felony Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7
|
||||
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG
|
||||
Man.Of.Steel.(2013).BDRip.600MB.Ganool Man.of.Steel.2013.BDRip.x264.700MB-Micromkv
|
||||
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD Man.Of.Steel.2013.BDRip.x264-Larceny
|
||||
Man.Of.Steel.2013.BDRiP.XViD-NoGRP Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO
|
||||
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG Man.Of.Steel.[2013].BRRip.XviD-ETRG
|
||||
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC
|
||||
Man.of.steel.2013.BRRip.XviD.AC3-RARBG Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N
|
||||
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON Man.Of.Steel.2013.720p.BRRip.x264.AC3-JYK
|
||||
Man.of.Steel.[2013].DVDRIP.DIVX.[Eng]-DUQA® Man.of.Steel.2013.1080p.BluRay.x264.YIFY</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381852391</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>11139</downloads><exactHashes>sublight:bb6b91e12f876eecbf86ca6a296807a7
|
||||
sublight:e5c4c23d90498eb7482b1f016ff39e92 sublight:1858614a80929a54653e95d50f8accc1</exactHashes></subtitle><subtitle><id>2667828</id><pid>NLUo</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/NLUo</url><uploaderId>86327</uploaderId><uploaderName>mixi69</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381502479</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>1544</downloads><exactHashes /></subtitle><subtitle><id>2525113</id><pid>uYcm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/uYcm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA®</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373611040</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>2770</downloads><exactHashes /></subtitle><subtitle><id>2524778</id><pid>aoYm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/aoYm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Superman.Man.of.Steel.2013.480p.R6.LiNE.x264.AAC-DAMN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373589100</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>8518</downloads><exactHashes /></subtitle><subtitle><id>2520414</id><pid>XnUm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/XnUm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.(2013).720p.R6.LiNE.900MB.Ganool</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373391411</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>4222</downloads><exactHashes /></subtitle><subtitle><id>2515558</id><pid>ZmIm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/ZmIm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373141422</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>5565</downloads><exactHashes /></subtitle><subtitle><id>2495682</id><pid>whQm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/whQm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.CAM.XviD.MP3.MiLLENiUM</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372075950</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>6276</downloads><exactHashes /></subtitle><subtitle><id>2495217</id><pid>8RIm</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/8RIm</url><uploaderId>26933</uploaderId><uploaderName>asdasd</uploaderName><release>Man.Of.Steel.2013.CAM.XViD-CALiBRATE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372047356</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>5048</downloads><exactHashes /></subtitle><subtitle><id>2489654</id><pid>Nv0l</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Nv0l</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.CAM.NEW.AUDiO.XViD-JUSTiCE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1371805723</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>7480</downloads><exactHashes /></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['11082']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>2</results></pagination><subtitle><id>2673432</id><pid>GMso</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/GMso</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.BDRip.x264-Larceny</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1381991887</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>3899</downloads><exactHashes>sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2552439</id><pid>d_Im</pid><title>Man
|
||||
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/d_Im</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.TS.XviD-JUSTiCE
|
||||
Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1374819034</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>4279</downloads><exactHashes /></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['2785']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,70 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sTS=7&sL=en&sY=2007&sK=The+Big+Bang+Theory&sTE=5&sXML=1
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sTS=7&sL=en&sY=2007&sK=The+Big+Bang+Theory&sTE=5&sXML=1']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/0.8.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sTS=7&sL=en&sY=2007&sK=The+Big+Bang+Theory&sTE=5&sXML=1
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>5</results></pagination><subtitle><id>3514331</id><pid>2581</pid><title>The
|
||||
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/2581</url><uploaderId>23329</uploaderId><uploaderName>jane</uploaderName><release>the.big.bang.theory.s07e05.1080p.bluray.x264-rovers</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1410069965</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>843</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>3514307</id><pid>w581</pid><title>The Big Bang
|
||||
Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/w581</url><uploaderId>23329</uploaderId><uploaderName>jane</uploaderName><release>the.big.bang.theory.s07e05.1080p.bluray.x264-rovers</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1410069864</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>838</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>2676094</id><pid>ftUo</pid><title>The Big Bang
|
||||
Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/ftUo</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>The.Big.Bang.Theory.S07E05.720p.WEB-DL.DD5.1.H.264</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382101941</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>4050</downloads><exactHashes>sublight:8bf2c59b194d36229b4e88995084ec05</exactHashes></subtitle><subtitle><id>2675729</id><pid>EdQo</pid><title>The
|
||||
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/EdQo</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>The.Big.Bang.Theory.S07E05.HDTV.x264-LOL
|
||||
The.Big.Bang.Theory.S07E05.720p.HDTV.x264-DIMENSION The.Big.Bang.Theory.S07E05.480p.HDTV.x264-mSD
|
||||
The.Big.Bang.Theory.S07E05.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382071751</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>22411</downloads><exactHashes>sublight:52882d75832c3c6fe8116d26993f66c4
|
||||
sublight:b34e0421f93bd4df512ca5458376a559 sublight:09e9dc38376b2245e9f806c106dc9928
|
||||
sublight:fd25365147f1e59f4cfa4c283c70b22a</exactHashes></subtitle><subtitle><id>2675544</id><pid>WNMo</pid><title>The
|
||||
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/WNMo</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>The.Big.Bang.Theory.S07E05.HDTV.x264-LOL
|
||||
The.Big.Bang.Theory.S07E05.720p.HDTV.x264-DIMENSION The.Big.Bang.Theory.S07E05.480p.HDTV.x264-mSD
|
||||
The.Big.Bang.Theory.S07E05.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382058590</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>8692</downloads><exactHashes>sublight:52882d75832c3c6fe8116d26993f66c4
|
||||
sublight:1be0b687d8689ee0e2a094531f7da7b8</exactHashes></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['5559']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user