├── .github
└── workflows
│ └── test.yml
├── LICENSE
├── README.md
├── article.go
├── article_test.go
├── cleanup.go
├── extract_authors.go
├── extract_authors_test.go
├── extract_comic.go
├── extract_content.go
├── extract_content_test.go
├── extract_images.go
├── extract_images_test.go
├── extract_links.go
├── extract_links_test.go
├── extract_metas.go
├── extract_metas_test.go
├── extract_publishdate.go
├── extract_publishdate_test.go
├── extract_tags.go
├── extract_tags_test.go
├── extract_test.go
├── extract_title.go
├── extract_title_test.go
├── extract_top_node.go
├── extract_videos.go
├── extract_videos_test.go
├── go.mod
├── go.sum
├── http.go
├── logo.png
├── logo.xcf
├── misc
└── git
│ └── pre-commit
├── stopwords.go
├── stopwords_list.go
├── stopwords_test.go
├── swan.go
├── swan_test.go
├── test_data
├── imgs
│ ├── 01cd2d375c909f8acd2e8c3ab75950b7ac001be6
│ ├── 028e1440b5eef142f0e44feb8971f2c3a564e0c4
│ ├── 0323d5191874c5bfe3488ecb23130e7f225b6ce6
│ ├── 0375af769d3f9dca083857ce2baad76364895af8
│ ├── 043c2c42702ced88ecf136da295b119b687e3702
│ ├── 04588e6d3843b76a9a09361505f1032210a122f7
│ ├── 0498af89af1845c1aef98943ec96cb3d0a9e890a
│ ├── 050cb0c4dc12634a507efcf1f69ed963a8cfca75
│ ├── 05fe153246ce1e26f2ea4ebab137f9f944cf394e
│ ├── 09b895aff600e47590951cbcd8115e6296f8b154
│ ├── 0b5f18afeedd3d9898060b4a3d0cd2cf90342a55
│ ├── 0d4d6068b25d905c879ee3a955ca2d56cfe2b94a
│ ├── 0e07eb39bc9546ab5adb7a81f99c8cfc56c5fec6
│ ├── 0e2befcd9fc56f49c99cdf02b840d73d42e5c10f
│ ├── 10764b4384acd3288a6ebbfaa4071b5d1ecd6c42
│ ├── 10bf5047550e26b538cc13058764a64ec04b2b53
│ ├── 10c394c0257148c371c1e76e6ba07dc6111f8653
│ ├── 118f17ed96c434135bf3afe2f4e3fb4872449b1f
│ ├── 119438294e1854da5b53cf3c08202432464682ab.err
│ ├── 123e11239f4d63d998d9414a79c4664b9603f0f6
│ ├── 12eca9438db812db1ca1631695054ff4041f6318
│ ├── 135d78af80957bef7896d148d6b39088c9b7924b
│ ├── 13e74bff92748ac9721b870bed89780421f3412a
│ ├── 143d584ff812828e93c6a1ce0ee0636f8d6ee3ef
│ ├── 15b57b0f74157e28f0119656c10696431ba114e0
│ ├── 163d22a94a8e7f67072bf52ced1b7baa328fd980
│ ├── 16cdb5921fca7282cb8f98eae0c0d1c3b44d6bd6
│ ├── 17fad31a3a4a892417151c57881047941b72e06e
│ ├── 18aebb697e484c04a497115713c09e0cea785858.err
│ ├── 1a6fc86d3ad6eeee86e184744eed4d9a6ca16ecf
│ ├── 1be55037d71d6d10399c5cc446ed1a6cb9a05d4b.err
│ ├── 1d8685b308280962bd3054cc8cdfcbb9fd75c6d9
│ ├── 1ea37d634d9f05095c3e826dc92c35c949e79979
│ ├── 1ed95df022aac887180c21406dd618f2b0813a7b
│ ├── 1f4ebc8c76a9866a95f426626c63e5501d32dde0
│ ├── 201f91c2e9fd447cfba49fbccbefbf446a04c723
│ ├── 208eccf136b162d1832fcfacb374113d5787f02e
│ ├── 214466fea7cd1c4bf448b22f6eafd27b173d37a2
│ ├── 2200f266251c7deb78fa620fe4cf850094027915
│ ├── 2251cf09b95dd338d8f87bc612463c6431d5cabb
│ ├── 22e7eafc9b78497acd428b445a7c8647168b51b4
│ ├── 24f43aa547b23a116df39e1be1cff9aa1d531c8f
│ ├── 27de17b2dfafed1ce5f816f67c0cf0854d030fc6
│ ├── 28dff840eabeca1f41cecd005304c587ed2378f9
│ ├── 29794b9d2551f76f2ad7efd143caf2a5567930ea
│ ├── 2f02e1163149a2479be444e517686156440b6316
│ ├── 2f1c048358f241e8bfa1174c824a0a83a490f568
│ ├── 2fe60a26ce26daac5c4019cfa803d0a660ec486f
│ ├── 305b115550207d44866cb1863438e275aeef9431
│ ├── 30e955f3ecc821dc38d8f37eebdfbeee36c2e0b4
│ ├── 312ebd6ddf784f1d4e705d2932ac55b651ac0c53
│ ├── 318b1b7669d9386049c16f803606ef1807112559
│ ├── 31d9d89db609c306fdc81950139ddc52d038ae69
│ ├── 330d3aae96ecb3bfe7cac46cb3e9c3a2fc433bda
│ ├── 334b583d83fa68e4d1a5f90068eaf93dffdfe2fc
│ ├── 334db9610ddd774db84f06e623bdde9daf964c53
│ ├── 33680b26a44708fc1bf789e3b0a32249bad8bee7
│ ├── 34060fb2206438c9b99eaf6881c4f8cdadcc757b
│ ├── 34d9a724f6dca7a3096bbd549634b2cce661695e
│ ├── 351a8e1b3f7360f8bf4174889f4d0c2e67ac6bf9
│ ├── 35f6c57b321b138e814df354ddeec225b37be268
│ ├── 36ca052c79b9d019aa9d6a0a86f4f0a236830407.err
│ ├── 36ec77851058ab556e07512117f2827ada10dc08
│ ├── 37805f44621ab89b8b6b68a4039cf2a23dd2e55d
│ ├── 378d1c2f188c889fb6548383d3f70ad94436cb7a
│ ├── 384a77350cfae25dc11b76572e2793e54b67dbbb
│ ├── 3875755b55f92467ac359fdaeb85019fb4286d09
│ ├── 3988c18f2cbde4cd3d56e15f1b350ebd5bf53561
│ ├── 3ab897e36b85b02d8561cfe860352bebbd863380
│ ├── 3ac304a002e0b12e727078755dca001dc6b23650
│ ├── 3b3a727d2eb77654beb8ec901f7552426cd089f0
│ ├── 3bf4eae22dd7e63266a545abdd7ce748850aa12a
│ ├── 3e12572b697de0cb23fae8b615eebeb229157774
│ ├── 3e9d5aebef2e2d36d7d583d9b778c93f550e51b4
│ ├── 3ed4cd63c02658106fb0e5475f87f058c506a901
│ ├── 3edd5c73980aa0d1887cc66e54ad505aa04afa92.err
│ ├── 3f2d383a4e263fc3031807d34c7a7305e2661e4a
│ ├── 3f3077fcf6c0efd13093c07968f9106e2b914fa3
│ ├── 40597d5c1ad54305f28c0628d016536ac2b657a8
│ ├── 40e8c9037abf188480f036a17b82a6e32a1812ad
│ ├── 419c66723df4b6dadc33f7792a3586cf197460f4
│ ├── 41ae9b5b3d94f157e076d9ee1fa03fd6c6ddfac2
│ ├── 41e22ee0afd5393a5b5fd130681618eb561b8e2c
│ ├── 41e4110b2966133a6458a8d5d5442d35d62564c8.err
│ ├── 41eabf1eede41f528ab69bafcf1ba960a61c2a2a
│ ├── 4219092d58cc22ec6e6cdecb96f6449754a4f45c
│ ├── 424fc27d6cf8cfe1cdd832770f0166d2ad2ec83e.err
│ ├── 42902469c486dccd6cd01f3b3bb6ea0687196ce7
│ ├── 4414ceeb2747f276cc981ec0d772eb5b4622b54e
│ ├── 4420552d0c7f8ed5edfe343b6d2347e9358c9fa4
│ ├── 446b314f746ecc3de1025f0f073b6ec0baa4ab0d
│ ├── 448d89aef30cd3def6241f94f6e43b519d569315
│ ├── 44b4c7c80bfa8164aee3ae6d8a1856f209a79b0c
│ ├── 4568ab8398cc63ba396290b041416b34413056f5
│ ├── 45a95e5faadea641723abca0cf2db3b91370420b
│ ├── 466608c38c719040c8bce978d312a81d1886b2c7
│ ├── 46e600b42e0fb862481269be57a8ca245cf56352
│ ├── 4a80bfcfe913d143eedadda91eb7bb05ce79b0cf.err
│ ├── 4b54a35a7ed04ef45ad7b6992d331c57936494b5
│ ├── 4c7ce2dd8506ca53bf78bf01163dc5bf8598cb06
│ ├── 4d14fd10b38cfe2b36000fbce177832918af1a7c
│ ├── 4d3e58106568ae2eb977179a8b1494cf31b6fe63.err
│ ├── 4e2cc92059459f02bad827dc2f26cdd6fd2bb18b.err
│ ├── 4e962b7a08b0b88ec8ddc5218be849173600dda2
│ ├── 5052968d787790e1bef896111187bca15237f4e4
│ ├── 50b8a208e9a65fb08b2220d9199ffb9bc702158a
│ ├── 5144962bb872e30a0a8a7330bb80e305b4560a6f
│ ├── 51c251cc392d66a9b3cc9de8ef640c68a3ee2474
│ ├── 51c53416a8c5d642a6fc17c5325db1ed9fce70cd
│ ├── 5275052bdc64fa8a57054bb453ea94ef2afd1ae6.err
│ ├── 550b86687edda5d5e740977dfc69a28adaebe101
│ ├── 551b5dfce0063f0917193ef9d57b56e5e27eb8a1
│ ├── 55a9b61442bf313fe14eb4d543aa68d2c4099677
│ ├── 55baffe9ea4c028082b863bb10a4ff17967b2ea9
│ ├── 56146ddc871afe6c57c43634483749326463a5bd
│ ├── 56231437611743f12d77a474fd8b713860b01645
│ ├── 57cfb4fbf5a46afa8658a0c0f0b745dd60f7e2bc
│ ├── 57ebe78f97564628a8801302132e76e4d17965e2
│ ├── 58311fcf0365db73b8b0827f0095f36d6a93f958
│ ├── 584a3e4232c4f2a407e08756735d9fcbd8164265
│ ├── 59fc9b2f8ff5a20cb13af5ea6c2f7167798b2e3d
│ ├── 5a6faa06d222ba87744c087360e2146e0da879e0
│ ├── 5af798e9d581de1c7d4f2454830bb1220deb8c19
│ ├── 5b52527a567633b03da96bb3d851da127db893d5
│ ├── 5ba44c4c74f4a640a99e89b844d43df75fa83b2f.err
│ ├── 5bda0521493cf596349dac4db33a45fc1eb42df4
│ ├── 5decb65d55a2a6e6e3e4b56fc208a3b6e92a4909
│ ├── 5ecddbb899b3e74af8bbedefd349c63c91cf8b0c
│ ├── 5fd3e5e11b1beec2ca6f61b96ca6e4f1e04c40cc
│ ├── 619c7cbc4ef3354342914c866e4f5ec4dd9541f2
│ ├── 620e0d74f0ecad2cd596cf761e8f3767aef2d956
│ ├── 6341790c6248827a8c21bd4e91ceb98f6d6c27eb
│ ├── 639143e4c7257d2af25a681bdb0803c8c7662b60
│ ├── 63dd54af50e65b2ca4b00617201c26c61d710521
│ ├── 64e84974d0300867c84ed53f1739fc956af33a77.err
│ ├── 654034234cd3e0f8b3f276876652aa25205be675.err
│ ├── 65705aeff851fd2eb0f1faadf3fedc407a228bfb.err
│ ├── 65bf904454cbc9be7ce2288d0cc16e78e8da47fa.err
│ ├── 65ece230137a9c229b5a37d93e44ece14eb629cc
│ ├── 67cfe6f97255137dab473dbca179930238a20a7e
│ ├── 68220e4b7ed13e824b331df414065fa51e599d3d.err
│ ├── 689e52ea831a7dabcecab8a95c16faf72ddfba58
│ ├── 6911e4bb33b2f5e3bac29516f9c391bdbdff4a00.err
│ ├── 6962db1ea8e9c5ada775ccf37bcc3084f79b2f93
│ ├── 69ac2b68db8e5d2d0204f4a1b515be3e70004a8e
│ ├── 6aeb44070eda13ed1bcc081836b247a7fe047ddb
│ ├── 6b4fd847e6c11e9126823589d7dcc61321fc50d4
│ ├── 6ba1c9311ad9b4f580d4f7483c9d17e76214e6d1
│ ├── 6d5ec937c2211a334fbaa393fe6e9d85cf132016
│ ├── 6dffe676b641d40e9d8c02aebeefee5632b7b0ea
│ ├── 6f18201083a431e0f3ba50a90c41edbd67759409
│ ├── 70673eb061bbeb37b719f0b0dab94b36800ba18b
│ ├── 707f62343926c856de9bf7416d9efd8005d51fe2
│ ├── 714b4be5da18d968431097a3feba5fb9a87c0cf6
│ ├── 72796831775af2330fac80e3ff4362da265c0def
│ ├── 72ee375adc888cb83c29866cd8fa3cb035c646c5
│ ├── 733167a065402bd99ae948a05ca1bc69f9e5ce74
│ ├── 738dbc8bcc4c09ff437313c5e4783386bfe3699d.err
│ ├── 743b446f08010a101292c122f46ddbd0139e50c7.err
│ ├── 754fc75210a99086b5f7a9fa2414ca5170e25d89
│ ├── 76311d81ddb66be83c822815c06209462f0f82aa
│ ├── 792119ba1e6c6840da378b531a723c0345172e04
│ ├── 799dd89d647d7bd4d2fe96d0e22837efbb2fbe51
│ ├── 7b0a7b1a7f7ddea61ae7676c3ad59ad29f7b3fa5
│ ├── 7c3e6efb9a3f8cda94a57774160325e5226c5b82
│ ├── 7c635a220b6a86cc98a5135935d926c4b98fe792
│ ├── 7d8a861d6799bf45efa2e4d69a29cd79ee63fcbd.err
│ ├── 7e74399779889c006cb474b569c3145bc1aa7cab
│ ├── 7e7f2db3987229c2be976cbdd8be2437bcbba032
│ ├── 7ed775d8a8658516d08e36a483fd40f7edf509a8
│ ├── 810421587689880e5d07b3dbf9e1c3a57e95a576
│ ├── 8251c7c6b06562f6b77dfa43c409593fadc7ac7e
│ ├── 82591a5c069f5be539551f1146b6b572171d856c
│ ├── 82805e34857217d2bebe654008f6aa571dbecf23
│ ├── 82c2a78677bb24451f53cd1d76e1e076c011c9b2
│ ├── 82efaff92cfa49db5b86e4ab659361cc57d8057e
│ ├── 84f10f50bbf59618e1d9d8e419580170b9c9e872
│ ├── 85456e0bf9d7ef25f77e5ae268215529ef6a0cf0
│ ├── 87ece0962eeeee37e3af6e4c958ff3a8c0d667d5
│ ├── 886bc7247ed62bbeeb20688565124bdbe76a3e11
│ ├── 897c49b644c870f7deb13fe39f50f21f9a5108e2
│ ├── 898e230b10ff2e3c03baccc780621a5fb6f891e6
│ ├── 89aa19d58b04f1f9bd49489b2c563517fdeb2710
│ ├── 89b3862183af3c89423775d0393f6ec9db8cc1b5
│ ├── 8b083720865bb8209daa355b11ecdfd17e923e2f
│ ├── 8b1512807020c2285a8a704fb3e55a7144082a89
│ ├── 8b3085b4885b8df95aaa99687de20286d9a5c4c7.err
│ ├── 8cb2d68f492ac827a23cb51949f32e9078db576d
│ ├── 8cf0b620f0eb6c6bc2e8f55664d46817ba22e720.err
│ ├── 8f50fdb12fe1d3e974779b87838217186991da5e
│ ├── 8ffba73acd9f018570c454d6aca0ed86b1d30bc4
│ ├── 90680304f53b5f17a4823f1717c34bb88cc5eb69
│ ├── 9272c16dad48d18da4bbdff5c1de4488de3f26b3
│ ├── 93119d26ee623fc02f3efcbd35bf7cd5901adb57
│ ├── 93e45c73a8b660f2e06b11a64114d513209ffadc
│ ├── 93e670e65405d0cb1a3f09a55e57df244e3a0051.err
│ ├── 94d59e52b8ca1959939d7a75ec92d363bf28a66d
│ ├── 950a54f5c06ed0eee3262ade9dbe4c82908cdb18.err
│ ├── 952ff8d7fa7563608b875e0f3c25e4d139a04df2
│ ├── 95ea7827d5c753978c046fc2fbe6017f9bc54838
│ ├── 9923f855239cb0c7391f76f7ac1d0b2856615344.err
│ ├── 9a34d8acf41cdb5c3a96be58c38f77c4d378c7b6
│ ├── 9c1b6ed7f91f1b9e309ceea36c04924c14574e19
│ ├── 9c337c4faba6365ebe7c2dc758ccd587c38996f7
│ ├── 9c3a085ef96ab8d7d87cd536857a9c91be066255.err
│ ├── 9ca318f6a3e1c5919b4b824f7d2a564ae93b5ac2
│ ├── 9d670accdc996646dda45e8d7e99dc40e3308a99
│ ├── 9d94a0be40cbda008ac6dc223ed752921326426f
│ ├── 9e1357c1f1025a1f2a7967ff6291b48b2932d943
│ ├── 9f2e516d7cb789a2dc3a6653e4b6f5fc43881ef2
│ ├── 9f985365b6a78ae88b207a138df21d1580086c87
│ ├── a0a56faf10958e8b34a9868c844134dea4a1d282
│ ├── a0da0acf070154a3e508ac4cffae88d21a225ae0
│ ├── a1de7d5b805f40ab84cdef19512412f1faf9d994
│ ├── a279f2eef620ff671dca6e18c2d2a42405492b25
│ ├── a32919d34cbbd9fbe682f45f03ee50fe99174759
│ ├── a33854a254d3c5ed7f3c498bad1157485e6f8555.err
│ ├── a37a1b62199cf40e36d1d1ea2c2b74281e3ac830
│ ├── a4273278154995c60f08d371bbbc5b3a27abe188
│ ├── a50f24fd13fd901c766e7a227ee057790c669688
│ ├── a5c1d34d06b0694027d8fc4bffb8bbecf70bf025
│ ├── a864a887a29cf0226a3b81cbe7d2aff34edbe60a.err
│ ├── a89d16f710827c300ef1499c8ad3df44f354f42c
│ ├── a9139a7cb01d10f13d6ebe3f8bc3d34f71d37fcb
│ ├── a980806639907ee2f2a5eb24b2483a31c98a77ae
│ ├── a9ad3a80662dd5532a522322b8cafcacb43f4286
│ ├── a9c4e975ce3b83117552fbf7d0bc8bfa74375ae4
│ ├── ab8da29058d9faaa6bf479a84894c6df1e56457f
│ ├── adfafac6077677d934b9dbed2567cebe98b25f36
│ ├── ae8480327aabbf12e179a4861447f273f7721dc0.err
│ ├── aeb8c0d5147419c9c2965baa62aafe9e22f5087f
│ ├── b124e54dd70f6a07b1358458635816f890f26a64.err
│ ├── b2af7ff3ffac77db2dd0270af18028ed6f38e72a.err
│ ├── b2b9995ba5e599ccbfba201ab3a7685d435b9b73
│ ├── b2e8e715c3a0496574f7e93973cb2737011b1fad.err
│ ├── b3a4e8edec30e7837c0be5cf940cda54f90d7155
│ ├── b4beb073aedc8de949c2de0aaa1c8d7818371c44
│ ├── b4c1ff147a09fdda7b3d92e6e98d164a4bbf9288
│ ├── b4edea6216fa5e09581ed7a78600832679c63361.err
│ ├── b593e5630d02e6ba5241542504d1362e23e7be50
│ ├── b5c249eb99c7233c19d359847d5bce6a532cefb6
│ ├── b5f5fcd5810a48eb62ef0c1501a4618ac876ca6f
│ ├── b60f2f277c7833e062c361da8cc207cccdb4b004
│ ├── b6753ff0718ff0451a417745fcf4fff24d54de77
│ ├── b98034adb1f5678d8f3831f89b1c96996390f68f
│ ├── ba681454a8e29b642993808e89e882e5905b9294
│ ├── ba6b129be254ff9efe1d8c2d2286160666151c0b
│ ├── ba94dbe30940700d7e155cca992830396b485af7.err
│ ├── bae30ec6ec41293a174f00d00cc480dfb392738f.err
│ ├── bbf3b22bb22130ac7f127a01b85a06106468dc60
│ ├── bde935d22b07f13bcef502876541b81a658c942e
│ ├── beb20fff57294631eaa87642645ed284af736b0a
│ ├── bf17156cca9d5af3e443921bd99e76569cd7f2cb.err
│ ├── bff6e4ab13c7e533d1a22046401d59eee477bf9c
│ ├── c0398757db4c70ee6fee853d9ef5b7e6828b62f5
│ ├── c46f17525dd7b2b51bbbde95ac255add2b131487
│ ├── c485a6a3c10c4b4c746c41649e72ded49641142a
│ ├── c50250052e1e2a7a5a57cf5fae1563e9436c1083
│ ├── c5e27cdb53c82f8fbe2ad3fbf26acf1672652d71
│ ├── c87483e60977e6b2dbd9b9f84acb77addcb73ddb
│ ├── cbec33a2d99714c4a9c8a4fc08dd61cecbd62b42
│ ├── ce290e2b628224ae875d72d70089c6bd243bddb3
│ ├── cecaaf9522c2f4736dafcd3a5b3d50ffd84b734e
│ ├── ced55e3446de04a78787d77d1bf05facf62ffa36
│ ├── cf9229d1c5dc7bcbb24652bedbe944e2697f3ac4
│ ├── d072396879f7ce4de0ea1f0342fbce8184bc9b90
│ ├── d0ce8af2b654c71640ad47563461eb839f1e5926
│ ├── d138ad67fea3208e8af394cda288a5588fa40e53
│ ├── d1dcfe11bc60e7a4e39a6c9f8cd8b8cf612b5684
│ ├── d21d8a7862ec6e9d98a14420637ba0c41a5c70c2
│ ├── d24175857572390d71708e4a91dbd770b47aee9f
│ ├── d2be50438cf0cfdbebd073e497dd552acbb82f4d
│ ├── d4c95653ddb9f87dc3e18a85f37308a81386eff9
│ ├── d612ed21481ae709cc9d53d18817540c475c86b6
│ ├── d68b52f2d6bf23b8f9498e9f4efc29a813bcc87d
│ ├── d6d5cc68a6fbe0416f106b3c87dfef3105c8e22f
│ ├── d7869815dee4928ef01e8f83411535f62f59e0fe
│ ├── d7960a0b2291e4780c827900f9f2e695d499d224
│ ├── d835ea9c2b2ed51699140a8c6a96e5f2043b8723
│ ├── d9d1693151647e676f86b00f8909d426cdeda2be
│ ├── da7eb0078607ff0ba9f67985b5e00bc50caca43d
│ ├── dbcd9ce5e606790da10d0ee153bcf3773715673c.err
│ ├── dbef3b868926d882a5f1de15542de4c2d054ea23.err
│ ├── dcf5fbf5edd89c42e0d54b1989a52727078e3ad5
│ ├── dd2194ccd09c87e5772194074db4a6d676985660
│ ├── de49b43ee6a3b96cb7eef71420c73aa41655625c
│ ├── df5bc123abb140a26cbca2d6e2f65d21b4c660a5
│ ├── e00657c680ef7d9fd8c6dca4b22533c415ffc141.err
│ ├── e0a7bbec4a257639e6386d8d873cb02e5144c5b0
│ ├── e1a52f3ee254519159d5330f53ee6d3a3f5793c4
│ ├── e1b01c6a8549be14dbdcbe2e515ccb9c635a8a60
│ ├── e1c13c2f00f3c79585d30b2e8af77f71b4b59f9d
│ ├── e1f81435572285a258214d71295f02860083a703.err
│ ├── e304a0256b5a03fea0c24a81dcfdf9d52e1b4b6e
│ ├── e57edd2276615158a186db84c1b4427625886f63.err
│ ├── e5aa2b99a3e0d44a4278841beb0e35d675db72fa
│ ├── e636493730402893b89f33ca6e6495f55696571c
│ ├── e703942784b1d2bc9232188fbf0d5b568ede1158
│ ├── e795a05a771182c47215d958dbe3e03d2bc542df.err
│ ├── e97bc2ba0f353b7b615b009771aa61633fbc8bdd
│ ├── ea5a2da66b90f5cae784179707c51088f89dd4f2
│ ├── ea9f6167092563bd536cd306b96cc5bf19e6ca71
│ ├── eb03a2f9f1e8d6bfec939458f7f8c8bdf94dcb8f
│ ├── eb177f07e6bfe31fbfa65411a7a3d243d9396247
│ ├── eb3de56a6f482918a00c93a9541830caf3f5b448
│ ├── ebd6cec9ffa3cefa11a2e72934fda4d3fe317468
│ ├── eca8fbe1d9e52a3316fcd07fa3eea2bc5260f119
│ ├── ecd92f9fbdbbbcd3c3dccb93241ec7aa6937b04d
│ ├── ed0f3ccabf33a80fd2233521e4c859cd501a7449.err
│ ├── ef23ebb71d46893bc91f622b557398bc4f91e4fd
│ ├── ef99e02ffe780f131876ce84263649ae93fbb70b
│ ├── f0f4fa14b5fb6aefd1207d113a56f7b3835b2a6b
│ ├── f2a3c3b1c6a04ee04f1d4239fe9dbc17bca2f01b
│ ├── f2d2d9f9797a9b2dfaefea0fc85aed8e058d6d6a
│ ├── f34e8de77d5311769eb4b15df234416d41462a82
│ ├── f4afb42d5c0a917229d03c670441f54d9b1742cd
│ ├── f4de8681244e4f71e6d5d1955b0edaa157a87615.err
│ ├── f4f7a8f2e4b869db086887786e0980e79c62e5cb
│ ├── f604a84c88a5f0ca8742323a8284acfdc77c367b
│ ├── f6b019b684852521973910be20737841b630ca0d
│ ├── f8c1e56becdb013c30534e58fa66b1ead583e771
│ ├── f90218c423674fd12950dbef375364e68b72d78e.err
│ ├── fa3cee00351a1cac1eaac03697db1337ef4e264f
│ ├── faa106b3776262c7c608e11de10351bc9939e65f.err
│ ├── fb6be5167df6aa84b9e94c8713cd9a4da1749b7a
│ ├── fcebb004688915fcd524f7131723ae9e2178690b
│ └── ff15810aa43a04d9dfecae90d11aa1f2ad5fa519
├── processors
│ ├── comics
│ │ ├── dilbert.html.out
│ │ ├── dilbert.in
│ │ ├── dilbert.text.out
│ │ ├── xkcd_1481.html.out
│ │ ├── xkcd_1481.in
│ │ └── xkcd_1481.text.out
│ └── default
│ │ ├── apod.nasa.gov.html.out
│ │ ├── apod.nasa.gov.in
│ │ ├── apod.nasa.gov.text.out
│ │ ├── engadget.com.html.out
│ │ ├── engadget.com.in
│ │ ├── engadget.com.text.out
│ │ ├── iflscience.com-0.html.out
│ │ ├── iflscience.com-0.in
│ │ ├── iflscience.com-0.text.out
│ │ ├── iflscience.com-1.html.out
│ │ ├── iflscience.com-1.in
│ │ ├── iflscience.com-1.text.out
│ │ ├── npr.html.out
│ │ ├── npr.in
│ │ ├── npr.text.out
│ │ ├── text_formatting.html.out
│ │ ├── text_formatting.in
│ │ └── text_formatting.text.out
├── python-goose
│ ├── authors
│ │ ├── test_author_schema.html
│ │ └── test_author_schema.json
│ ├── content
│ │ ├── test_allnewlyrics1.html
│ │ ├── test_allnewlyrics1.json
│ │ ├── test_aolNews.html
│ │ ├── test_aolNews.json
│ │ ├── test_articlebody_attribute.html
│ │ ├── test_articlebody_attribute.json
│ │ ├── test_articlebody_itemprop.html
│ │ ├── test_articlebody_itemprop.json
│ │ ├── test_articlebody_tag.html
│ │ ├── test_articlebody_tag.json
│ │ ├── test_businessWeek1.html
│ │ ├── test_businessWeek1.json
│ │ ├── test_businessWeek2.html
│ │ ├── test_businessWeek2.json
│ │ ├── test_businessWeek3.html
│ │ ├── test_businessWeek3.json
│ │ ├── test_businessinsider3.html
│ │ ├── test_businessinsider3.json
│ │ ├── test_cbslocal.html
│ │ ├── test_cbslocal.json
│ │ ├── test_cnbc1.html
│ │ ├── test_cnbc1.json
│ │ ├── test_cnet.html
│ │ ├── test_cnet.json
│ │ ├── test_cnn1.html
│ │ ├── test_cnn1.json
│ │ ├── test_cnn_arabic.html
│ │ ├── test_cnn_arabic.json
│ │ ├── test_donga_korean.html
│ │ ├── test_donga_korean.json
│ │ ├── test_elmondo1.html
│ │ ├── test_elmondo1.json
│ │ ├── test_elpais.html
│ │ ├── test_elpais.json
│ │ ├── test_engadget.html
│ │ ├── test_engadget.json
│ │ ├── test_espn.html
│ │ ├── test_espn.json
│ │ ├── test_foxNews.html
│ │ ├── test_foxNews.json
│ │ ├── test_get_canonical_url.html
│ │ ├── test_get_canonical_url.json
│ │ ├── test_gizmodo1.html
│ │ ├── test_gizmodo1.json
│ │ ├── test_guardian1.html
│ │ ├── test_guardian1.json
│ │ ├── test_huffingtonPost2.html
│ │ ├── test_huffingtonPost2.json
│ │ ├── test_issue115.html
│ │ ├── test_issue115.json
│ │ ├── test_issue129.html
│ │ ├── test_issue129.json
│ │ ├── test_issue24.html
│ │ ├── test_issue24.json
│ │ ├── test_issue25.html
│ │ ├── test_issue25.json
│ │ ├── test_issue28.html
│ │ ├── test_issue28.json
│ │ ├── test_issue32.html
│ │ ├── test_issue32.json
│ │ ├── test_issue4.html
│ │ ├── test_issue4.json
│ │ ├── test_lefigaro.html
│ │ ├── test_lefigaro.json
│ │ ├── test_liberation.html
│ │ ├── test_liberation.json
│ │ ├── test_marketplace.html
│ │ ├── test_marketplace.json
│ │ ├── test_mashable_issue_74.html
│ │ ├── test_mashable_issue_74.json
│ │ ├── test_msn1.html
│ │ ├── test_msn1.json
│ │ ├── test_okaymarketing.html
│ │ ├── test_okaymarketing.json
│ │ ├── test_politico.html
│ │ ├── test_politico.json
│ │ ├── test_techcrunch1.html
│ │ ├── test_techcrunch1.json
│ │ ├── test_testHuffingtonPost.html
│ │ ├── test_testHuffingtonPost.json
│ │ ├── test_time.html
│ │ ├── test_time.json
│ │ ├── test_time2.html
│ │ ├── test_time2.json
│ │ ├── test_usatoday_issue_74.html
│ │ ├── test_usatoday_issue_74.json
│ │ ├── test_yahoo.html
│ │ └── test_yahoo.json
│ ├── images
│ │ ├── test_basic_image
│ │ │ ├── test_basic_image.html
│ │ │ └── test_basic_image.json
│ │ ├── test_known_image_css_class
│ │ │ ├── test_known_image_css_class.html
│ │ │ └── test_known_image_css_class.json
│ │ ├── test_known_image_css_id
│ │ │ ├── test_known_image_css_id.html
│ │ │ └── test_known_image_css_id.json
│ │ ├── test_known_image_css_parent_class
│ │ │ ├── test_known_image_css_parent_class.html
│ │ │ └── test_known_image_css_parent_class.json
│ │ ├── test_known_image_css_parent_id
│ │ │ ├── test_known_image_css_parent_id.html
│ │ │ └── test_known_image_css_parent_id.json
│ │ ├── test_known_image_empty_src
│ │ │ ├── test_known_image_empty_src.html
│ │ │ └── test_known_image_empty_src.json
│ │ ├── test_known_image_name_parent
│ │ │ ├── test_known_image_name_parent.html
│ │ │ └── test_known_image_name_parent.json
│ │ └── test_opengraph_tag
│ │ │ ├── test_opengraph_tag.html
│ │ │ └── test_opengraph_tag.json
│ ├── links
│ │ ├── test_links.html
│ │ └── test_links.json
│ ├── opengraph
│ │ ├── test_opengraph.html
│ │ └── test_opengraph.json
│ ├── publishdate
│ │ ├── test_publish_date.html
│ │ ├── test_publish_date.json
│ │ ├── test_publish_date_article.html
│ │ ├── test_publish_date_article.json
│ │ ├── test_publish_date_rnews.html
│ │ ├── test_publish_date_rnews.json
│ │ ├── test_publish_date_schema.html
│ │ └── test_publish_date_schema.json
│ ├── tags
│ │ ├── test_tags_abcau.html
│ │ ├── test_tags_abcau.json
│ │ ├── test_tags_cnet.html
│ │ ├── test_tags_cnet.json
│ │ ├── test_tags_deadline.html
│ │ ├── test_tags_deadline.json
│ │ ├── test_tags_kexp.html
│ │ ├── test_tags_kexp.json
│ │ ├── test_tags_wnyc.html
│ │ └── test_tags_wnyc.json
│ ├── title
│ │ ├── test_title_opengraph.html
│ │ └── test_title_opengraph.json
│ ├── tweets
│ │ ├── test_tweet.html
│ │ └── test_tweet.json
│ └── videos
│ │ ├── test_embed.html
│ │ ├── test_embed.json
│ │ ├── test_iframe.html
│ │ ├── test_iframe.json
│ │ ├── test_object.html
│ │ └── test_object.json
├── stopwords
│ ├── ar.txt
│ ├── da.txt
│ ├── de.txt
│ ├── en.txt
│ ├── es.txt
│ ├── fi.txt
│ ├── fr.txt
│ ├── hu.txt
│ ├── id.txt
│ ├── it.txt
│ ├── ko.txt
│ ├── nl.txt
│ ├── no.txt
│ ├── pl.txt
│ ├── pt.txt
│ ├── ru.txt
│ ├── sv.txt
│ └── zh.txt
└── utf8
│ ├── apod.html.in
│ └── apod.html.out
├── update
├── .gitignore
├── Makefile
└── update.go
├── utf8.go
└── utf8_test.go
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: test
2 | on: [push]
3 | jobs:
4 | test:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - uses: actions/checkout@v1
8 | - uses: actions/setup-go@v1
9 | with:
10 | go-version: 1.x
11 | - run: go test -v ./...
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Swan [](https://github.com/thatguystone/swan/actions) [](https://godoc.org/github.com/thatguystone/swan)
2 |
3 |
4 |
5 | An implementation of the Goose HTML Content / Article Extractor algorithm in golang.
6 |
7 | Swan allows you to extract cleaned up text and HTML content from any webpage by removing all the extra junk that so many pages have these days.
8 |
9 | Check out [the go documentation page](https://godoc.org/github.com/thatguystone/swan) for full usage and examples.
10 |
11 |
12 |
13 | ## Features
14 |
15 | * Main content extraction from almost any source
16 | * Extract HTML content with images
17 | * Get article metadata, publish dates, and a lot more
18 | * Recognize different content types and apply special extractions (currently only recognizes comic sites and normal sites)
19 |
20 | ## Planned
21 |
22 | * Inline videos into HTML content when found in an article
23 | * Recognize news sources and extract corresponding video / audio content
24 | * Recognize and extract more types of content
25 | * An interesting idea: https://github.com/buriy/python-readability/issues/57#issuecomment-67926023
26 |
--------------------------------------------------------------------------------
/article_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "bytes"
5 | "fmt"
6 | "io/ioutil"
7 | "os"
8 | "path/filepath"
9 | "strings"
10 | "testing"
11 | )
12 |
13 | var (
14 | contentDirs = []string{
15 | "test_data/processors/comics/",
16 | "test_data/processors/default/",
17 | }
18 | )
19 |
20 | func TestProcessors(t *testing.T) {
21 | t.Parallel()
22 | hijiackHTTP()
23 |
24 | for _, dir := range contentDirs {
25 | filepath.Walk(dir,
26 | func(path string, info os.FileInfo, err error) error {
27 | if err != nil {
28 | t.Fatalf("error while walking directory %s: %s",
29 | dir,
30 | err)
31 | }
32 |
33 | if info.IsDir() || !strings.HasSuffix(path, ".in") {
34 | return nil
35 | }
36 |
37 | baseName := strings.Replace(path, ".in", "", -1)
38 | htmlOut := fmt.Sprintf("%s.html.out", baseName)
39 | textOut := fmt.Sprintf("%s.text.out", baseName)
40 |
41 | in, err := ioutil.ReadFile(path)
42 | if err != nil {
43 | t.Fatalf("Failed to read input for %s: %s", baseName, err)
44 | }
45 |
46 | html, htmlErr := ioutil.ReadFile(htmlOut)
47 | text, textErr := ioutil.ReadFile(textOut)
48 | if htmlErr != nil && textErr != nil {
49 | t.Fatalf("%s: \n"+
50 | " htmlErr: %s\n"+
51 | " textErr: %s",
52 | baseName,
53 | htmlErr,
54 | textErr)
55 | }
56 |
57 | parts := bytes.SplitN(in, []byte("\n"), 2)
58 |
59 | a, err := FromHTML(string(parts[0]), parts[1])
60 | if err != nil {
61 | t.Fatalf("%s: %s", baseName, err)
62 | }
63 |
64 | aHTML := ""
65 | if a.TopNode != nil {
66 | aHTML, _ = a.TopNode.Html()
67 | aHTML = strings.TrimSpace(aHTML)
68 | }
69 | eHTML := strings.TrimSpace(string(html))
70 |
71 | if htmlErr == nil && eHTML != aHTML {
72 | t.Fatalf(
73 | "%s: HTML does not match:\n"+
74 | " Got: %s\n"+
75 | " Expected: %s",
76 | baseName,
77 | aHTML,
78 | eHTML)
79 | }
80 |
81 | eText := strings.TrimSpace(string(text))
82 | if textErr == nil && eText != a.CleanedText {
83 | t.Fatalf(
84 | "%s: CleanedText does not match:\n"+
85 | " Got: %s\n"+
86 | " Expected: %s",
87 | baseName,
88 | a.CleanedText,
89 | eText)
90 | }
91 |
92 | return nil
93 | })
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/extract_authors.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "strings"
5 |
6 | "github.com/PuerkitoBio/goquery"
7 | "github.com/andybalholm/cascadia"
8 | )
9 |
10 | type extractAuthors struct{}
11 |
12 | var (
13 | authorMatcher = cascadia.MustCompile("[itemprop~=author] [itemprop=name]")
14 | )
15 |
16 | func (e extractAuthors) run(a *Article) error {
17 | auths := make(map[string]interface{})
18 |
19 | a.Doc.FindMatcher(authorMatcher).Each(func(i int, s *goquery.Selection) {
20 | t := s.Text()
21 | if t != "" {
22 | auths[strings.TrimSpace(t)] = nil
23 | }
24 | })
25 |
26 | for k := range auths {
27 | a.Meta.Authors = append(a.Meta.Authors, k)
28 | }
29 |
30 | return nil
31 | }
32 |
--------------------------------------------------------------------------------
/extract_authors_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "reflect"
5 | "testing"
6 | )
7 |
8 | func TestAuthorPyExtractor(t *testing.T) {
9 | t.Parallel()
10 |
11 | runPyTests(t,
12 | "test_data/python-goose/authors/",
13 | func(t *testing.T, name string, a *Article, r *Result) {
14 | ea := make(map[string]interface{})
15 | ga := make(map[string]interface{})
16 |
17 | for _, a := range r.Expected.Authors {
18 | ea[a] = nil
19 | }
20 |
21 | for _, a := range a.Meta.Authors {
22 | ga[a] = nil
23 | }
24 |
25 | if !reflect.DeepEqual(ea, ga) {
26 | t.Fatalf(
27 | "%s: Authors do not match:\n"+
28 | " Got: %s\n"+
29 | " Expected: %s",
30 | name,
31 | ga,
32 | ea)
33 | }
34 | })
35 | }
36 |
--------------------------------------------------------------------------------
/extract_content_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import "testing"
4 |
5 | func TestPyContentExtractors(t *testing.T) {
6 | t.Parallel()
7 |
8 | runPyTests(t,
9 | "test_data/python-goose/content/",
10 | func(t *testing.T, name string, a *Article, r *Result) {
11 | e := r.Expected
12 |
13 | if e.MetaDescription != "" && e.MetaDescription != a.Meta.Description {
14 | t.Fatalf(
15 | "%s: MetaDescription does not match:\n"+
16 | " Got: %s\n"+
17 | " Expected: %s",
18 | name, a.Meta.Description, e.MetaDescription)
19 | }
20 |
21 | if e.MetaKeywords != "" && e.MetaKeywords != a.Meta.Keywords {
22 | t.Fatalf(
23 | "%s: MetaKeywords does not match:\n"+
24 | " Got: %s\n"+
25 | " Expected: %s",
26 | name, a.Meta.Keywords, e.MetaKeywords)
27 | }
28 |
29 | if e.Title != "" && e.Title != a.Meta.Title {
30 | t.Fatalf(
31 | "%s: Title does not match:\n"+
32 | " Got: %s\n"+
33 | " Expected: %s",
34 | name, a.Meta.Title, e.Title)
35 | }
36 |
37 | if e.MetaLang != "" && e.MetaLang != a.Meta.Lang {
38 | t.Fatalf(
39 | "%s: Lang does not match:\n"+
40 | " Got: %s\n"+
41 | " Expected: %s",
42 | name, a.Meta.Lang, e.MetaLang)
43 | }
44 |
45 | cleaned := a.CleanedText
46 | if len(r.Expected.CleanedText) < len(cleaned) {
47 | cleaned = cleaned[:len(r.Expected.CleanedText)]
48 | }
49 |
50 | if cleaned != r.Expected.CleanedText {
51 | t.Fatalf(
52 | "%s: CleanedText does not match:\n"+
53 | " Got: %s\n"+
54 | " Expected: %s",
55 | name, cleaned, r.Expected.CleanedText)
56 | }
57 | })
58 | }
59 |
--------------------------------------------------------------------------------
/extract_images_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import "testing"
4 |
5 | func TestImagesPyExtractor(t *testing.T) {
6 | t.Parallel()
7 |
8 | runPyTests(t,
9 | "test_data/python-goose/images/",
10 | func(t *testing.T, name string, a *Article, r *Result) {
11 | if r.Expected.TopImage.Src != "" && a.Img == nil {
12 | t.Fatalf("No image found for %s", name)
13 | }
14 |
15 | if a.Img == nil {
16 | return
17 | }
18 |
19 | if r.Expected.TopImage.Src != a.Img.Src {
20 | t.Fatalf("Found wrong image for %s:\n"+
21 | " Got: %s\n"+
22 | " Expected: %s",
23 | name,
24 | a.Img.Src,
25 | r.Expected.TopImage.Src)
26 | }
27 |
28 | if r.Expected.TopImage.Height != a.Img.Height ||
29 | r.Expected.TopImage.Width != a.Img.Width {
30 |
31 | t.Fatalf("Dimension mismatch for %s: got %dx%d, expected %dx%d",
32 | name,
33 | a.Img.Width, a.Img.Height,
34 | r.Expected.TopImage.Width, r.Expected.TopImage.Height)
35 | }
36 | })
37 | }
38 |
--------------------------------------------------------------------------------
/extract_links.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import "github.com/PuerkitoBio/goquery"
4 |
5 | type extractLinks struct{}
6 |
7 | func (e extractLinks) run(a *Article) error {
8 | if a.TopNode == nil {
9 | return nil
10 | }
11 |
12 | a.TopNode.FindMatcher(linkTags).Each(func(i int, s *goquery.Selection) {
13 | h, exists := s.Attr("href")
14 | if exists && h != "" {
15 | a.Meta.Links = append(a.Meta.Links, h)
16 | }
17 | })
18 |
19 | return nil
20 | }
21 |
--------------------------------------------------------------------------------
/extract_links_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "testing"
5 | )
6 |
7 | func TestLinksPyExtractor(t *testing.T) {
8 | t.Parallel()
9 |
10 | runPyTests(t,
11 | "test_data/python-goose/links/",
12 | func(t *testing.T, name string, a *Article, r *Result) {
13 | if len(a.Meta.Links) != r.Expected.Links {
14 | t.Fatalf(
15 | "%s: Incorrect link count:\n"+
16 | " Got: %d\n"+
17 | " Expected: %d",
18 | name, len(a.Meta.Links), r.Expected.Links)
19 | }
20 | })
21 | }
22 |
--------------------------------------------------------------------------------
/extract_metas_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "reflect"
5 | "testing"
6 | )
7 |
8 | func TestOpenGraphPyExtractor(t *testing.T) {
9 | t.Parallel()
10 |
11 | runPyTests(t,
12 | "test_data/python-goose/opengraph/",
13 | func(t *testing.T, name string, a *Article, r *Result) {
14 | if !reflect.DeepEqual(a.Meta.OpenGraph, r.Expected.OpenGraph) {
15 | t.Fatalf(
16 | "%s: Authors do not match:\n"+
17 | " Got: %s\n"+
18 | " Expected: %s",
19 | name,
20 | a.Meta.OpenGraph,
21 | r.Expected.OpenGraph)
22 | }
23 | })
24 | }
25 |
--------------------------------------------------------------------------------
/extract_publishdate.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "github.com/PuerkitoBio/goquery"
5 | "github.com/andybalholm/cascadia"
6 | )
7 |
8 | type extractPublishDate struct{}
9 |
10 | type publishDate struct {
11 | m goquery.Matcher
12 | attr string
13 | }
14 |
15 | var (
16 | publishDaters = []publishDate{
17 | publishDate{
18 | m: cascadia.MustCompile("[property=rnews\\:datePublished]"),
19 | attr: "content",
20 | },
21 | publishDate{
22 | m: cascadia.MustCompile("[property=article\\:published_time]"),
23 | attr: "content",
24 | },
25 | publishDate{
26 | m: cascadia.MustCompile("[name=OriginalPublicationDate]"),
27 | attr: "content",
28 | },
29 | publishDate{
30 | m: cascadia.MustCompile("[itemprop=datePublished]"),
31 | attr: "datetime",
32 | },
33 | }
34 | )
35 |
36 | func (e extractPublishDate) run(a *Article) error {
37 | for _, pd := range publishDaters {
38 | s := a.Doc.FindMatcher(pd.m)
39 | if s.Size() == 0 {
40 | continue
41 | }
42 |
43 | t, exists := s.Attr(pd.attr)
44 | if !exists {
45 | continue
46 | }
47 |
48 | a.Meta.PublishDate = t
49 | break
50 | }
51 |
52 | return nil
53 | }
54 |
--------------------------------------------------------------------------------
/extract_publishdate_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "testing"
5 | )
6 |
7 | func TestPublishDatePyExtractor(t *testing.T) {
8 | t.Parallel()
9 |
10 | runPyTests(t,
11 | "test_data/python-goose/publishdate/",
12 | func(t *testing.T, name string, a *Article, r *Result) {
13 | if a.Meta.PublishDate != r.Expected.PublishDate {
14 | t.Fatalf(
15 | "%s: PublishDate does not match:\n"+
16 | " Got: %s\n"+
17 | " Expected: %s",
18 | name, a.Meta.PublishDate, r.Expected.PublishDate)
19 | }
20 | })
21 | }
22 |
--------------------------------------------------------------------------------
/extract_tags.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "strings"
5 |
6 | "github.com/PuerkitoBio/goquery"
7 | "github.com/andybalholm/cascadia"
8 | )
9 |
10 | type extractTags struct{}
11 |
12 | var (
13 | tagRelMatcher = cascadia.MustCompile("a[rel=tag]")
14 | tagHrefMatcher = cascadia.MustCompile("a[href*='/tag/'], " +
15 | "a[href*='/tags/'], " +
16 | "a[href*='/topic/'], " +
17 | "a[href*='?keyword=']")
18 | )
19 |
20 | func (e extractTags) run(a *Article) error {
21 | tags := make(map[string]interface{})
22 |
23 | s := a.Doc.FindMatcher(tagRelMatcher)
24 | if s.Size() == 0 {
25 | s = a.Doc.FindMatcher(tagHrefMatcher)
26 | }
27 |
28 | s.Each(func(i int, s *goquery.Selection) {
29 | t := strings.TrimSpace(s.Text())
30 | if t != "" {
31 | tags[t] = nil
32 | }
33 | })
34 |
35 | for t := range tags {
36 | a.Meta.Tags = append(a.Meta.Tags, t)
37 | }
38 |
39 | return nil
40 | }
41 |
--------------------------------------------------------------------------------
/extract_tags_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "reflect"
5 | "testing"
6 | )
7 |
8 | func TestTagsPyExtractor(t *testing.T) {
9 | t.Parallel()
10 |
11 | runPyTests(t,
12 | "test_data/python-goose/tags/",
13 | func(t *testing.T, name string, a *Article, r *Result) {
14 | et := make(map[string]interface{})
15 | gt := make(map[string]interface{})
16 |
17 | for _, t := range r.Expected.Tags {
18 | et[t] = nil
19 | }
20 |
21 | for _, t := range a.Meta.Tags {
22 | gt[t] = nil
23 | }
24 |
25 | if !reflect.DeepEqual(et, gt) {
26 | t.Fatalf(
27 | "%s: Tags do not match:\n"+
28 | " Got: %s\n"+
29 | " Expected: %s",
30 | name,
31 | gt,
32 | et)
33 | }
34 | })
35 | }
36 |
--------------------------------------------------------------------------------
/extract_title.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "regexp"
5 | "strings"
6 |
7 | "github.com/andybalholm/cascadia"
8 | )
9 |
10 | type extractTitle struct{}
11 |
12 | var (
13 | titleSplitters = "|-»:"
14 | titleMatcher = cascadia.MustCompile("title")
15 | headlineMatcher = cascadia.MustCompile("meta[name=headline]")
16 | )
17 |
18 | func cleanTitle(a *Article, t string) string {
19 | if sn, ok := a.Meta.OpenGraph["site_name"]; ok {
20 | t = strings.TrimSpace(strings.Replace(t, sn, "", -1))
21 | }
22 |
23 | if a.Meta.Domain != "" {
24 | r, err := regexp.Compile(a.Meta.Domain)
25 | if err == nil {
26 | t = strings.TrimSpace(r.ReplaceAllString(t, ""))
27 | }
28 | }
29 |
30 | return strings.TrimSpace(strings.Trim(t, titleSplitters))
31 | }
32 |
33 | func (e extractTitle) run(a *Article) error {
34 | title, ok := a.Meta.OpenGraph["title"]
35 |
36 | if !ok {
37 | title, ok = a.Doc.FindMatcher(headlineMatcher).Attr("content")
38 | }
39 |
40 | if !ok {
41 | title = a.Doc.FindMatcher(titleMatcher).Text()
42 | }
43 |
44 | a.Meta.Title = cleanTitle(a, title)
45 |
46 | return nil
47 | }
48 |
--------------------------------------------------------------------------------
/extract_title_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "testing"
5 | )
6 |
7 | func TestTitlePyExtractor(t *testing.T) {
8 | t.Parallel()
9 |
10 | runPyTests(t,
11 | "test_data/python-goose/title/",
12 | func(t *testing.T, name string, a *Article, r *Result) {
13 | if a.Meta.Title != r.Expected.Title {
14 | t.Fatalf(
15 | "%s: Title does not match:\n"+
16 | " Got: %s\n"+
17 | " Expected: %s",
18 | name, a.Meta.Title, r.Expected.Title)
19 | }
20 | })
21 | }
22 |
--------------------------------------------------------------------------------
/extract_videos.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | type extractVideos struct{}
4 |
5 | func (e extractVideos) run(a *Article) error {
6 | return nil
7 | }
8 |
--------------------------------------------------------------------------------
/extract_videos_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/thatguystone/swan
2 |
3 | go 1.12
4 |
5 | require (
6 | github.com/PuerkitoBio/goquery v1.5.0
7 | github.com/andybalholm/cascadia v1.0.0
8 | github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
9 | github.com/tdewolff/minify/v2 v2.3.8
10 | golang.org/x/net v0.0.0-20181217023233-e147a9138326
11 | golang.org/x/text v0.3.0
12 | )
13 |
--------------------------------------------------------------------------------
/http.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "fmt"
5 | "io"
6 | "net/http"
7 | "time"
8 | )
9 |
10 | const (
11 | maxRespBytes = 15728640
12 | )
13 |
14 | var (
15 | httpClient = &http.Client{
16 | Timeout: time.Second * 10,
17 | }
18 | )
19 |
20 | func httpGet(url string) (body io.ReadCloser, resp *http.Response, err error) {
21 | req, err := http.NewRequest("GET", url, nil)
22 | if err != nil {
23 | err = fmt.Errorf("could not create new request: %s", err)
24 | return
25 | }
26 |
27 | req.Header.Set("User-Agent", "swan/"+Version)
28 | resp, err = httpClient.Do(req)
29 | if err != nil {
30 | err = fmt.Errorf("could not load URL: %s", err)
31 | return
32 | }
33 |
34 | if resp.StatusCode != 200 {
35 | resp.Body.Close()
36 | resp.Body = nil
37 | err = fmt.Errorf("could not load URL: status code %d", resp.StatusCode)
38 | return
39 | }
40 |
41 | body = http.MaxBytesReader(nil, resp.Body, maxRespBytes)
42 | return
43 | }
44 |
--------------------------------------------------------------------------------
/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/logo.png
--------------------------------------------------------------------------------
/logo.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/logo.xcf
--------------------------------------------------------------------------------
/misc/git/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright 2012 The Go Authors. All rights reserved.
3 | # Use of this source code is governed by a BSD-style
4 | # license that can be found in the LICENSE file.
5 |
6 | # git gofmt pre-commit hook
7 | #
8 | # To use, store as .git/hooks/pre-commit inside your repository and make sure
9 | # it has execute permissions.
10 | #
11 | # This script does not handle file names that contain spaces.
12 |
13 | linted=`golint -min_confidence=.3 ./...`
14 | if [ -n "$linted" ]; then
15 | echo "$linted"
16 | exit 1
17 | fi
18 |
19 | go vet ./...
20 | [ $? -ne 0 ] && exit 1
21 |
22 | gofiles=$(git diff --cached --name-only --diff-filter=ACM | grep '\.go$')
23 | [ -z "$gofiles" ] && exit 0
24 |
25 | unformatted=$(gofmt -l $gofiles 2>&1)
26 | [ -z "$unformatted" ] && exit 0
27 |
28 | # Some files are not gofmt'd. Print message and fail.
29 | echo >&2 "Go files must be formatted with \`go fmt\`. The following are not:"
30 | for fn in $unformatted; do
31 | echo >&2 " $fn"
32 | done
33 |
34 | exit 1
35 |
--------------------------------------------------------------------------------
/stopwords_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "fmt"
5 | "io/ioutil"
6 | "reflect"
7 | "strings"
8 | "testing"
9 |
10 | "github.com/PuerkitoBio/goquery"
11 | )
12 |
13 | func TestDetectLang(t *testing.T) {
14 | t.Parallel()
15 |
16 | for l := range stopwords {
17 | path := fmt.Sprintf("test_data/stopwords/%s.txt", l)
18 | txt, err := ioutil.ReadFile(path)
19 | if err != nil {
20 | t.Fatalf("failed to read %s: %s", path, err)
21 | }
22 |
23 | doc, err := goquery.NewDocumentFromReader(strings.NewReader(string(txt)))
24 | if err != nil {
25 | t.Fatalf("failed to create doc: %s", err)
26 | }
27 |
28 | a := &Article{
29 | Doc: doc,
30 | }
31 |
32 | err = precleanup{}.run(a)
33 | err = cleanup{}.run(a)
34 | if err != nil {
35 | t.Fatalf("failed to clean doc: %s", err)
36 | }
37 |
38 | lang := detectLang(a)
39 | path = strings.Replace(path, ".txt", "", -1)
40 | if !strings.HasSuffix(path, lang) {
41 | t.Fatalf("incorrect language detected for %s: %s", path, lang)
42 | }
43 | }
44 | }
45 |
46 | func TestSplitText(t *testing.T) {
47 | t.Parallel()
48 |
49 | type test struct {
50 | in string
51 | out []string
52 | }
53 |
54 | table := []test{
55 | test{
56 | in: "there once was a boy .",
57 | out: []string{"there", "once", "was", "a", "boy"},
58 | },
59 | test{
60 | in: "the boy's hat was green",
61 | out: []string{"the", "boy's", "hat", "was", "green"},
62 | },
63 | test{
64 | in: "spaces. ",
65 | out: []string{"spaces"},
66 | },
67 | test{
68 | in: " more spaces. ",
69 | out: []string{"more", "spaces"},
70 | },
71 | test{
72 | in: "punct: everywhere!",
73 | out: []string{"punct", "everywhere"},
74 | },
75 | test{
76 | in: "test – test",
77 | out: []string{"test", "test"},
78 | },
79 | test{
80 | in: "test ––––– test",
81 | out: []string{"test", "test"},
82 | },
83 | test{
84 | in: "test –– ü – ☃ –– test",
85 | out: []string{"test", "ü", "☃", "test"},
86 | },
87 | }
88 |
89 | for _, tc := range table {
90 | ws := splitText(tc.in)
91 |
92 | if !reflect.DeepEqual(ws, tc.out) {
93 | t.Fatalf("%#v != %#v", ws, tc.out)
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/swan.go:
--------------------------------------------------------------------------------
1 | // Package swan implements the Goose HTML Content / Article Extractor
2 | // algorithm.
3 | //
4 | // Currently, swan will try to extract the following content types:
5 | //
6 | // Comics: if something looks like a web comic, it will be extracted as just
7 | // an image. This is a WIP.
8 | //
9 | // Everything else: it will look for article text and try to extract any
10 | // header image that goes with it.
11 | package swan
12 |
13 | import (
14 | "bytes"
15 | "fmt"
16 | "io/ioutil"
17 |
18 | "github.com/PuerkitoBio/goquery"
19 | )
20 |
21 | const (
22 | // Version of the library
23 | Version = "1.0"
24 | )
25 |
26 | // FromURL does its best to extract an article from the given URL
27 | func FromURL(url string) (a *Article, err error) {
28 | body, resp, err := httpGet(url)
29 | if err != nil {
30 | return
31 | }
32 |
33 | defer body.Close()
34 |
35 | html, err := ioutil.ReadAll(resp.Body)
36 | if err != nil {
37 | err = fmt.Errorf("could not read response body: %s", err)
38 | return
39 | }
40 |
41 | return FromHTML(resp.Request.URL.String(), html)
42 | }
43 |
44 | // FromHTML does its best to extract an article from a single HTML page.
45 | //
46 | // Pass in the URL the document came from so that images can be resolved
47 | // correctly.
48 | func FromHTML(url string, html []byte) (*Article, error) {
49 | html, err := ToUtf8(html)
50 | if err != nil {
51 | return nil, err
52 | }
53 |
54 | doc, err := goquery.NewDocumentFromReader(bytes.NewReader(html))
55 | if err != nil {
56 | err = fmt.Errorf("invalid HTML: %s", err)
57 | return nil, err
58 | }
59 |
60 | return FromDoc(url, doc)
61 | }
62 |
63 | // FromDoc does its best to extract an article from a single document
64 | //
65 | // Pass in the URL the document came from so that images can be resolved
66 | // correctly.
67 | func FromDoc(url string, doc *goquery.Document) (*Article, error) {
68 | a := &Article{
69 | URL: url,
70 | Doc: doc,
71 | }
72 |
73 | err := a.extract()
74 | if err != nil {
75 | return nil, err
76 | }
77 |
78 | return a, nil
79 | }
80 |
--------------------------------------------------------------------------------
/swan_test.go:
--------------------------------------------------------------------------------
1 | package swan
2 |
3 | import (
4 | "fmt"
5 | "strings"
6 | )
7 |
8 | func ExampleFromHTML() {
9 | htmlIn := `
10 |
11 | Example Title
12 |
13 |
14 |
15 | some article body with a bunch of text in it
16 |
17 | `
18 |
19 | a, err := FromHTML("http://example.com/article/1", []byte(htmlIn))
20 | if err != nil {
21 | panic(err)
22 | }
23 |
24 | if a.TopNode == nil {
25 | panic("no article could be extracted, " +
26 | "but a.Doc and a.Meta are still cleaned " +
27 | "and can be messed with ")
28 | }
29 |
30 | // Get the document title
31 | fmt.Printf("Title: %s\n", a.Meta.Title)
32 |
33 | // Hit any open graph tags
34 | fmt.Printf("Site Name: %s\n", a.Meta.OpenGraph["site_name"])
35 |
36 | // Print out any cleaned-up HTML that was found
37 | html, _ := a.TopNode.Html()
38 | fmt.Printf("HTML: %s\n", strings.TrimSpace(html))
39 |
40 | // Print out any cleaned-up text that was found
41 | fmt.Printf("Plain: %s\n", a.CleanedText)
42 |
43 | // Output: Title: Example Title
44 | // Site Name: Example Name
45 | // HTML: some article body with a bunch of text in it
46 | // Plain: some article body with a bunch of text in it
47 | }
48 |
--------------------------------------------------------------------------------
/test_data/imgs/01cd2d375c909f8acd2e8c3ab75950b7ac001be6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/01cd2d375c909f8acd2e8c3ab75950b7ac001be6
--------------------------------------------------------------------------------
/test_data/imgs/028e1440b5eef142f0e44feb8971f2c3a564e0c4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/028e1440b5eef142f0e44feb8971f2c3a564e0c4
--------------------------------------------------------------------------------
/test_data/imgs/0323d5191874c5bfe3488ecb23130e7f225b6ce6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/0323d5191874c5bfe3488ecb23130e7f225b6ce6
--------------------------------------------------------------------------------
/test_data/imgs/0375af769d3f9dca083857ce2baad76364895af8:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/0375af769d3f9dca083857ce2baad76364895af8
--------------------------------------------------------------------------------
/test_data/imgs/043c2c42702ced88ecf136da295b119b687e3702:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/043c2c42702ced88ecf136da295b119b687e3702
--------------------------------------------------------------------------------
/test_data/imgs/04588e6d3843b76a9a09361505f1032210a122f7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/04588e6d3843b76a9a09361505f1032210a122f7
--------------------------------------------------------------------------------
/test_data/imgs/0498af89af1845c1aef98943ec96cb3d0a9e890a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/0498af89af1845c1aef98943ec96cb3d0a9e890a
--------------------------------------------------------------------------------
/test_data/imgs/050cb0c4dc12634a507efcf1f69ed963a8cfca75:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/050cb0c4dc12634a507efcf1f69ed963a8cfca75
--------------------------------------------------------------------------------
/test_data/imgs/05fe153246ce1e26f2ea4ebab137f9f944cf394e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/05fe153246ce1e26f2ea4ebab137f9f944cf394e
--------------------------------------------------------------------------------
/test_data/imgs/09b895aff600e47590951cbcd8115e6296f8b154:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/09b895aff600e47590951cbcd8115e6296f8b154
--------------------------------------------------------------------------------
/test_data/imgs/0b5f18afeedd3d9898060b4a3d0cd2cf90342a55:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/0b5f18afeedd3d9898060b4a3d0cd2cf90342a55
--------------------------------------------------------------------------------
/test_data/imgs/0d4d6068b25d905c879ee3a955ca2d56cfe2b94a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/0d4d6068b25d905c879ee3a955ca2d56cfe2b94a
--------------------------------------------------------------------------------
/test_data/imgs/0e07eb39bc9546ab5adb7a81f99c8cfc56c5fec6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/0e07eb39bc9546ab5adb7a81f99c8cfc56c5fec6
--------------------------------------------------------------------------------
/test_data/imgs/0e2befcd9fc56f49c99cdf02b840d73d42e5c10f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/0e2befcd9fc56f49c99cdf02b840d73d42e5c10f
--------------------------------------------------------------------------------
/test_data/imgs/10764b4384acd3288a6ebbfaa4071b5d1ecd6c42:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/10764b4384acd3288a6ebbfaa4071b5d1ecd6c42
--------------------------------------------------------------------------------
/test_data/imgs/10bf5047550e26b538cc13058764a64ec04b2b53:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/10bf5047550e26b538cc13058764a64ec04b2b53
--------------------------------------------------------------------------------
/test_data/imgs/10c394c0257148c371c1e76e6ba07dc6111f8653:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/10c394c0257148c371c1e76e6ba07dc6111f8653
--------------------------------------------------------------------------------
/test_data/imgs/118f17ed96c434135bf3afe2f4e3fb4872449b1f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/118f17ed96c434135bf3afe2f4e3fb4872449b1f
--------------------------------------------------------------------------------
/test_data/imgs/119438294e1854da5b53cf3c08202432464682ab.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/119438294e1854da5b53cf3c08202432464682ab.err
--------------------------------------------------------------------------------
/test_data/imgs/123e11239f4d63d998d9414a79c4664b9603f0f6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/123e11239f4d63d998d9414a79c4664b9603f0f6
--------------------------------------------------------------------------------
/test_data/imgs/12eca9438db812db1ca1631695054ff4041f6318:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/12eca9438db812db1ca1631695054ff4041f6318
--------------------------------------------------------------------------------
/test_data/imgs/135d78af80957bef7896d148d6b39088c9b7924b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/135d78af80957bef7896d148d6b39088c9b7924b
--------------------------------------------------------------------------------
/test_data/imgs/13e74bff92748ac9721b870bed89780421f3412a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/13e74bff92748ac9721b870bed89780421f3412a
--------------------------------------------------------------------------------
/test_data/imgs/143d584ff812828e93c6a1ce0ee0636f8d6ee3ef:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/143d584ff812828e93c6a1ce0ee0636f8d6ee3ef
--------------------------------------------------------------------------------
/test_data/imgs/15b57b0f74157e28f0119656c10696431ba114e0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/15b57b0f74157e28f0119656c10696431ba114e0
--------------------------------------------------------------------------------
/test_data/imgs/163d22a94a8e7f67072bf52ced1b7baa328fd980:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/163d22a94a8e7f67072bf52ced1b7baa328fd980
--------------------------------------------------------------------------------
/test_data/imgs/16cdb5921fca7282cb8f98eae0c0d1c3b44d6bd6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/16cdb5921fca7282cb8f98eae0c0d1c3b44d6bd6
--------------------------------------------------------------------------------
/test_data/imgs/17fad31a3a4a892417151c57881047941b72e06e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/17fad31a3a4a892417151c57881047941b72e06e
--------------------------------------------------------------------------------
/test_data/imgs/18aebb697e484c04a497115713c09e0cea785858.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/18aebb697e484c04a497115713c09e0cea785858.err
--------------------------------------------------------------------------------
/test_data/imgs/1a6fc86d3ad6eeee86e184744eed4d9a6ca16ecf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/1a6fc86d3ad6eeee86e184744eed4d9a6ca16ecf
--------------------------------------------------------------------------------
/test_data/imgs/1be55037d71d6d10399c5cc446ed1a6cb9a05d4b.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/1be55037d71d6d10399c5cc446ed1a6cb9a05d4b.err
--------------------------------------------------------------------------------
/test_data/imgs/1d8685b308280962bd3054cc8cdfcbb9fd75c6d9:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/1d8685b308280962bd3054cc8cdfcbb9fd75c6d9
--------------------------------------------------------------------------------
/test_data/imgs/1ea37d634d9f05095c3e826dc92c35c949e79979:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/1ea37d634d9f05095c3e826dc92c35c949e79979
--------------------------------------------------------------------------------
/test_data/imgs/1ed95df022aac887180c21406dd618f2b0813a7b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/1ed95df022aac887180c21406dd618f2b0813a7b
--------------------------------------------------------------------------------
/test_data/imgs/1f4ebc8c76a9866a95f426626c63e5501d32dde0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/1f4ebc8c76a9866a95f426626c63e5501d32dde0
--------------------------------------------------------------------------------
/test_data/imgs/201f91c2e9fd447cfba49fbccbefbf446a04c723:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/201f91c2e9fd447cfba49fbccbefbf446a04c723
--------------------------------------------------------------------------------
/test_data/imgs/208eccf136b162d1832fcfacb374113d5787f02e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/208eccf136b162d1832fcfacb374113d5787f02e
--------------------------------------------------------------------------------
/test_data/imgs/214466fea7cd1c4bf448b22f6eafd27b173d37a2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/214466fea7cd1c4bf448b22f6eafd27b173d37a2
--------------------------------------------------------------------------------
/test_data/imgs/2200f266251c7deb78fa620fe4cf850094027915:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/2200f266251c7deb78fa620fe4cf850094027915
--------------------------------------------------------------------------------
/test_data/imgs/2251cf09b95dd338d8f87bc612463c6431d5cabb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/2251cf09b95dd338d8f87bc612463c6431d5cabb
--------------------------------------------------------------------------------
/test_data/imgs/22e7eafc9b78497acd428b445a7c8647168b51b4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/22e7eafc9b78497acd428b445a7c8647168b51b4
--------------------------------------------------------------------------------
/test_data/imgs/24f43aa547b23a116df39e1be1cff9aa1d531c8f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/24f43aa547b23a116df39e1be1cff9aa1d531c8f
--------------------------------------------------------------------------------
/test_data/imgs/27de17b2dfafed1ce5f816f67c0cf0854d030fc6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/27de17b2dfafed1ce5f816f67c0cf0854d030fc6
--------------------------------------------------------------------------------
/test_data/imgs/28dff840eabeca1f41cecd005304c587ed2378f9:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/28dff840eabeca1f41cecd005304c587ed2378f9
--------------------------------------------------------------------------------
/test_data/imgs/29794b9d2551f76f2ad7efd143caf2a5567930ea:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/29794b9d2551f76f2ad7efd143caf2a5567930ea
--------------------------------------------------------------------------------
/test_data/imgs/2f02e1163149a2479be444e517686156440b6316:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/2f02e1163149a2479be444e517686156440b6316
--------------------------------------------------------------------------------
/test_data/imgs/2f1c048358f241e8bfa1174c824a0a83a490f568:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/2f1c048358f241e8bfa1174c824a0a83a490f568
--------------------------------------------------------------------------------
/test_data/imgs/2fe60a26ce26daac5c4019cfa803d0a660ec486f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/2fe60a26ce26daac5c4019cfa803d0a660ec486f
--------------------------------------------------------------------------------
/test_data/imgs/305b115550207d44866cb1863438e275aeef9431:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/305b115550207d44866cb1863438e275aeef9431
--------------------------------------------------------------------------------
/test_data/imgs/30e955f3ecc821dc38d8f37eebdfbeee36c2e0b4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/30e955f3ecc821dc38d8f37eebdfbeee36c2e0b4
--------------------------------------------------------------------------------
/test_data/imgs/312ebd6ddf784f1d4e705d2932ac55b651ac0c53:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/312ebd6ddf784f1d4e705d2932ac55b651ac0c53
--------------------------------------------------------------------------------
/test_data/imgs/318b1b7669d9386049c16f803606ef1807112559:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/318b1b7669d9386049c16f803606ef1807112559
--------------------------------------------------------------------------------
/test_data/imgs/31d9d89db609c306fdc81950139ddc52d038ae69:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/31d9d89db609c306fdc81950139ddc52d038ae69
--------------------------------------------------------------------------------
/test_data/imgs/330d3aae96ecb3bfe7cac46cb3e9c3a2fc433bda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/330d3aae96ecb3bfe7cac46cb3e9c3a2fc433bda
--------------------------------------------------------------------------------
/test_data/imgs/334b583d83fa68e4d1a5f90068eaf93dffdfe2fc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/334b583d83fa68e4d1a5f90068eaf93dffdfe2fc
--------------------------------------------------------------------------------
/test_data/imgs/334db9610ddd774db84f06e623bdde9daf964c53:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/334db9610ddd774db84f06e623bdde9daf964c53
--------------------------------------------------------------------------------
/test_data/imgs/33680b26a44708fc1bf789e3b0a32249bad8bee7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/33680b26a44708fc1bf789e3b0a32249bad8bee7
--------------------------------------------------------------------------------
/test_data/imgs/34060fb2206438c9b99eaf6881c4f8cdadcc757b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/34060fb2206438c9b99eaf6881c4f8cdadcc757b
--------------------------------------------------------------------------------
/test_data/imgs/34d9a724f6dca7a3096bbd549634b2cce661695e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/34d9a724f6dca7a3096bbd549634b2cce661695e
--------------------------------------------------------------------------------
/test_data/imgs/351a8e1b3f7360f8bf4174889f4d0c2e67ac6bf9:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/351a8e1b3f7360f8bf4174889f4d0c2e67ac6bf9
--------------------------------------------------------------------------------
/test_data/imgs/35f6c57b321b138e814df354ddeec225b37be268:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/35f6c57b321b138e814df354ddeec225b37be268
--------------------------------------------------------------------------------
/test_data/imgs/36ca052c79b9d019aa9d6a0a86f4f0a236830407.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/36ca052c79b9d019aa9d6a0a86f4f0a236830407.err
--------------------------------------------------------------------------------
/test_data/imgs/36ec77851058ab556e07512117f2827ada10dc08:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/36ec77851058ab556e07512117f2827ada10dc08
--------------------------------------------------------------------------------
/test_data/imgs/37805f44621ab89b8b6b68a4039cf2a23dd2e55d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/37805f44621ab89b8b6b68a4039cf2a23dd2e55d
--------------------------------------------------------------------------------
/test_data/imgs/378d1c2f188c889fb6548383d3f70ad94436cb7a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/378d1c2f188c889fb6548383d3f70ad94436cb7a
--------------------------------------------------------------------------------
/test_data/imgs/384a77350cfae25dc11b76572e2793e54b67dbbb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/384a77350cfae25dc11b76572e2793e54b67dbbb
--------------------------------------------------------------------------------
/test_data/imgs/3875755b55f92467ac359fdaeb85019fb4286d09:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3875755b55f92467ac359fdaeb85019fb4286d09
--------------------------------------------------------------------------------
/test_data/imgs/3988c18f2cbde4cd3d56e15f1b350ebd5bf53561:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3988c18f2cbde4cd3d56e15f1b350ebd5bf53561
--------------------------------------------------------------------------------
/test_data/imgs/3ab897e36b85b02d8561cfe860352bebbd863380:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3ab897e36b85b02d8561cfe860352bebbd863380
--------------------------------------------------------------------------------
/test_data/imgs/3ac304a002e0b12e727078755dca001dc6b23650:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3ac304a002e0b12e727078755dca001dc6b23650
--------------------------------------------------------------------------------
/test_data/imgs/3b3a727d2eb77654beb8ec901f7552426cd089f0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3b3a727d2eb77654beb8ec901f7552426cd089f0
--------------------------------------------------------------------------------
/test_data/imgs/3bf4eae22dd7e63266a545abdd7ce748850aa12a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3bf4eae22dd7e63266a545abdd7ce748850aa12a
--------------------------------------------------------------------------------
/test_data/imgs/3e12572b697de0cb23fae8b615eebeb229157774:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3e12572b697de0cb23fae8b615eebeb229157774
--------------------------------------------------------------------------------
/test_data/imgs/3e9d5aebef2e2d36d7d583d9b778c93f550e51b4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3e9d5aebef2e2d36d7d583d9b778c93f550e51b4
--------------------------------------------------------------------------------
/test_data/imgs/3ed4cd63c02658106fb0e5475f87f058c506a901:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3ed4cd63c02658106fb0e5475f87f058c506a901
--------------------------------------------------------------------------------
/test_data/imgs/3edd5c73980aa0d1887cc66e54ad505aa04afa92.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3edd5c73980aa0d1887cc66e54ad505aa04afa92.err
--------------------------------------------------------------------------------
/test_data/imgs/3f2d383a4e263fc3031807d34c7a7305e2661e4a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3f2d383a4e263fc3031807d34c7a7305e2661e4a
--------------------------------------------------------------------------------
/test_data/imgs/3f3077fcf6c0efd13093c07968f9106e2b914fa3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/3f3077fcf6c0efd13093c07968f9106e2b914fa3
--------------------------------------------------------------------------------
/test_data/imgs/40597d5c1ad54305f28c0628d016536ac2b657a8:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/40597d5c1ad54305f28c0628d016536ac2b657a8
--------------------------------------------------------------------------------
/test_data/imgs/40e8c9037abf188480f036a17b82a6e32a1812ad:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/40e8c9037abf188480f036a17b82a6e32a1812ad
--------------------------------------------------------------------------------
/test_data/imgs/419c66723df4b6dadc33f7792a3586cf197460f4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/419c66723df4b6dadc33f7792a3586cf197460f4
--------------------------------------------------------------------------------
/test_data/imgs/41ae9b5b3d94f157e076d9ee1fa03fd6c6ddfac2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/41ae9b5b3d94f157e076d9ee1fa03fd6c6ddfac2
--------------------------------------------------------------------------------
/test_data/imgs/41e22ee0afd5393a5b5fd130681618eb561b8e2c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/41e22ee0afd5393a5b5fd130681618eb561b8e2c
--------------------------------------------------------------------------------
/test_data/imgs/41e4110b2966133a6458a8d5d5442d35d62564c8.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/41e4110b2966133a6458a8d5d5442d35d62564c8.err
--------------------------------------------------------------------------------
/test_data/imgs/41eabf1eede41f528ab69bafcf1ba960a61c2a2a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/41eabf1eede41f528ab69bafcf1ba960a61c2a2a
--------------------------------------------------------------------------------
/test_data/imgs/4219092d58cc22ec6e6cdecb96f6449754a4f45c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4219092d58cc22ec6e6cdecb96f6449754a4f45c
--------------------------------------------------------------------------------
/test_data/imgs/424fc27d6cf8cfe1cdd832770f0166d2ad2ec83e.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/424fc27d6cf8cfe1cdd832770f0166d2ad2ec83e.err
--------------------------------------------------------------------------------
/test_data/imgs/42902469c486dccd6cd01f3b3bb6ea0687196ce7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/42902469c486dccd6cd01f3b3bb6ea0687196ce7
--------------------------------------------------------------------------------
/test_data/imgs/4414ceeb2747f276cc981ec0d772eb5b4622b54e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4414ceeb2747f276cc981ec0d772eb5b4622b54e
--------------------------------------------------------------------------------
/test_data/imgs/4420552d0c7f8ed5edfe343b6d2347e9358c9fa4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4420552d0c7f8ed5edfe343b6d2347e9358c9fa4
--------------------------------------------------------------------------------
/test_data/imgs/446b314f746ecc3de1025f0f073b6ec0baa4ab0d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/446b314f746ecc3de1025f0f073b6ec0baa4ab0d
--------------------------------------------------------------------------------
/test_data/imgs/448d89aef30cd3def6241f94f6e43b519d569315:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/448d89aef30cd3def6241f94f6e43b519d569315
--------------------------------------------------------------------------------
/test_data/imgs/44b4c7c80bfa8164aee3ae6d8a1856f209a79b0c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/44b4c7c80bfa8164aee3ae6d8a1856f209a79b0c
--------------------------------------------------------------------------------
/test_data/imgs/4568ab8398cc63ba396290b041416b34413056f5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4568ab8398cc63ba396290b041416b34413056f5
--------------------------------------------------------------------------------
/test_data/imgs/45a95e5faadea641723abca0cf2db3b91370420b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/45a95e5faadea641723abca0cf2db3b91370420b
--------------------------------------------------------------------------------
/test_data/imgs/466608c38c719040c8bce978d312a81d1886b2c7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/466608c38c719040c8bce978d312a81d1886b2c7
--------------------------------------------------------------------------------
/test_data/imgs/46e600b42e0fb862481269be57a8ca245cf56352:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/46e600b42e0fb862481269be57a8ca245cf56352
--------------------------------------------------------------------------------
/test_data/imgs/4a80bfcfe913d143eedadda91eb7bb05ce79b0cf.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4a80bfcfe913d143eedadda91eb7bb05ce79b0cf.err
--------------------------------------------------------------------------------
/test_data/imgs/4b54a35a7ed04ef45ad7b6992d331c57936494b5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4b54a35a7ed04ef45ad7b6992d331c57936494b5
--------------------------------------------------------------------------------
/test_data/imgs/4c7ce2dd8506ca53bf78bf01163dc5bf8598cb06:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4c7ce2dd8506ca53bf78bf01163dc5bf8598cb06
--------------------------------------------------------------------------------
/test_data/imgs/4d14fd10b38cfe2b36000fbce177832918af1a7c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4d14fd10b38cfe2b36000fbce177832918af1a7c
--------------------------------------------------------------------------------
/test_data/imgs/4d3e58106568ae2eb977179a8b1494cf31b6fe63.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4d3e58106568ae2eb977179a8b1494cf31b6fe63.err
--------------------------------------------------------------------------------
/test_data/imgs/4e2cc92059459f02bad827dc2f26cdd6fd2bb18b.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4e2cc92059459f02bad827dc2f26cdd6fd2bb18b.err
--------------------------------------------------------------------------------
/test_data/imgs/4e962b7a08b0b88ec8ddc5218be849173600dda2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/4e962b7a08b0b88ec8ddc5218be849173600dda2
--------------------------------------------------------------------------------
/test_data/imgs/5052968d787790e1bef896111187bca15237f4e4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5052968d787790e1bef896111187bca15237f4e4
--------------------------------------------------------------------------------
/test_data/imgs/50b8a208e9a65fb08b2220d9199ffb9bc702158a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/50b8a208e9a65fb08b2220d9199ffb9bc702158a
--------------------------------------------------------------------------------
/test_data/imgs/5144962bb872e30a0a8a7330bb80e305b4560a6f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5144962bb872e30a0a8a7330bb80e305b4560a6f
--------------------------------------------------------------------------------
/test_data/imgs/51c251cc392d66a9b3cc9de8ef640c68a3ee2474:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/51c251cc392d66a9b3cc9de8ef640c68a3ee2474
--------------------------------------------------------------------------------
/test_data/imgs/51c53416a8c5d642a6fc17c5325db1ed9fce70cd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/51c53416a8c5d642a6fc17c5325db1ed9fce70cd
--------------------------------------------------------------------------------
/test_data/imgs/5275052bdc64fa8a57054bb453ea94ef2afd1ae6.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5275052bdc64fa8a57054bb453ea94ef2afd1ae6.err
--------------------------------------------------------------------------------
/test_data/imgs/550b86687edda5d5e740977dfc69a28adaebe101:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/550b86687edda5d5e740977dfc69a28adaebe101
--------------------------------------------------------------------------------
/test_data/imgs/551b5dfce0063f0917193ef9d57b56e5e27eb8a1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/551b5dfce0063f0917193ef9d57b56e5e27eb8a1
--------------------------------------------------------------------------------
/test_data/imgs/55a9b61442bf313fe14eb4d543aa68d2c4099677:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/55a9b61442bf313fe14eb4d543aa68d2c4099677
--------------------------------------------------------------------------------
/test_data/imgs/55baffe9ea4c028082b863bb10a4ff17967b2ea9:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/55baffe9ea4c028082b863bb10a4ff17967b2ea9
--------------------------------------------------------------------------------
/test_data/imgs/56146ddc871afe6c57c43634483749326463a5bd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/56146ddc871afe6c57c43634483749326463a5bd
--------------------------------------------------------------------------------
/test_data/imgs/56231437611743f12d77a474fd8b713860b01645:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/56231437611743f12d77a474fd8b713860b01645
--------------------------------------------------------------------------------
/test_data/imgs/57cfb4fbf5a46afa8658a0c0f0b745dd60f7e2bc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/57cfb4fbf5a46afa8658a0c0f0b745dd60f7e2bc
--------------------------------------------------------------------------------
/test_data/imgs/57ebe78f97564628a8801302132e76e4d17965e2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/57ebe78f97564628a8801302132e76e4d17965e2
--------------------------------------------------------------------------------
/test_data/imgs/58311fcf0365db73b8b0827f0095f36d6a93f958:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/58311fcf0365db73b8b0827f0095f36d6a93f958
--------------------------------------------------------------------------------
/test_data/imgs/584a3e4232c4f2a407e08756735d9fcbd8164265:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/584a3e4232c4f2a407e08756735d9fcbd8164265
--------------------------------------------------------------------------------
/test_data/imgs/59fc9b2f8ff5a20cb13af5ea6c2f7167798b2e3d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/59fc9b2f8ff5a20cb13af5ea6c2f7167798b2e3d
--------------------------------------------------------------------------------
/test_data/imgs/5a6faa06d222ba87744c087360e2146e0da879e0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5a6faa06d222ba87744c087360e2146e0da879e0
--------------------------------------------------------------------------------
/test_data/imgs/5af798e9d581de1c7d4f2454830bb1220deb8c19:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5af798e9d581de1c7d4f2454830bb1220deb8c19
--------------------------------------------------------------------------------
/test_data/imgs/5b52527a567633b03da96bb3d851da127db893d5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5b52527a567633b03da96bb3d851da127db893d5
--------------------------------------------------------------------------------
/test_data/imgs/5ba44c4c74f4a640a99e89b844d43df75fa83b2f.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5ba44c4c74f4a640a99e89b844d43df75fa83b2f.err
--------------------------------------------------------------------------------
/test_data/imgs/5bda0521493cf596349dac4db33a45fc1eb42df4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5bda0521493cf596349dac4db33a45fc1eb42df4
--------------------------------------------------------------------------------
/test_data/imgs/5decb65d55a2a6e6e3e4b56fc208a3b6e92a4909:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5decb65d55a2a6e6e3e4b56fc208a3b6e92a4909
--------------------------------------------------------------------------------
/test_data/imgs/5ecddbb899b3e74af8bbedefd349c63c91cf8b0c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5ecddbb899b3e74af8bbedefd349c63c91cf8b0c
--------------------------------------------------------------------------------
/test_data/imgs/5fd3e5e11b1beec2ca6f61b96ca6e4f1e04c40cc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/5fd3e5e11b1beec2ca6f61b96ca6e4f1e04c40cc
--------------------------------------------------------------------------------
/test_data/imgs/619c7cbc4ef3354342914c866e4f5ec4dd9541f2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/619c7cbc4ef3354342914c866e4f5ec4dd9541f2
--------------------------------------------------------------------------------
/test_data/imgs/620e0d74f0ecad2cd596cf761e8f3767aef2d956:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/620e0d74f0ecad2cd596cf761e8f3767aef2d956
--------------------------------------------------------------------------------
/test_data/imgs/6341790c6248827a8c21bd4e91ceb98f6d6c27eb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6341790c6248827a8c21bd4e91ceb98f6d6c27eb
--------------------------------------------------------------------------------
/test_data/imgs/639143e4c7257d2af25a681bdb0803c8c7662b60:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/639143e4c7257d2af25a681bdb0803c8c7662b60
--------------------------------------------------------------------------------
/test_data/imgs/63dd54af50e65b2ca4b00617201c26c61d710521:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/63dd54af50e65b2ca4b00617201c26c61d710521
--------------------------------------------------------------------------------
/test_data/imgs/64e84974d0300867c84ed53f1739fc956af33a77.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/64e84974d0300867c84ed53f1739fc956af33a77.err
--------------------------------------------------------------------------------
/test_data/imgs/654034234cd3e0f8b3f276876652aa25205be675.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/654034234cd3e0f8b3f276876652aa25205be675.err
--------------------------------------------------------------------------------
/test_data/imgs/65705aeff851fd2eb0f1faadf3fedc407a228bfb.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/65705aeff851fd2eb0f1faadf3fedc407a228bfb.err
--------------------------------------------------------------------------------
/test_data/imgs/65bf904454cbc9be7ce2288d0cc16e78e8da47fa.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/65bf904454cbc9be7ce2288d0cc16e78e8da47fa.err
--------------------------------------------------------------------------------
/test_data/imgs/65ece230137a9c229b5a37d93e44ece14eb629cc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/65ece230137a9c229b5a37d93e44ece14eb629cc
--------------------------------------------------------------------------------
/test_data/imgs/67cfe6f97255137dab473dbca179930238a20a7e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/67cfe6f97255137dab473dbca179930238a20a7e
--------------------------------------------------------------------------------
/test_data/imgs/68220e4b7ed13e824b331df414065fa51e599d3d.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/68220e4b7ed13e824b331df414065fa51e599d3d.err
--------------------------------------------------------------------------------
/test_data/imgs/689e52ea831a7dabcecab8a95c16faf72ddfba58:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/689e52ea831a7dabcecab8a95c16faf72ddfba58
--------------------------------------------------------------------------------
/test_data/imgs/6911e4bb33b2f5e3bac29516f9c391bdbdff4a00.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6911e4bb33b2f5e3bac29516f9c391bdbdff4a00.err
--------------------------------------------------------------------------------
/test_data/imgs/6962db1ea8e9c5ada775ccf37bcc3084f79b2f93:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6962db1ea8e9c5ada775ccf37bcc3084f79b2f93
--------------------------------------------------------------------------------
/test_data/imgs/69ac2b68db8e5d2d0204f4a1b515be3e70004a8e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/69ac2b68db8e5d2d0204f4a1b515be3e70004a8e
--------------------------------------------------------------------------------
/test_data/imgs/6aeb44070eda13ed1bcc081836b247a7fe047ddb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6aeb44070eda13ed1bcc081836b247a7fe047ddb
--------------------------------------------------------------------------------
/test_data/imgs/6b4fd847e6c11e9126823589d7dcc61321fc50d4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6b4fd847e6c11e9126823589d7dcc61321fc50d4
--------------------------------------------------------------------------------
/test_data/imgs/6ba1c9311ad9b4f580d4f7483c9d17e76214e6d1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6ba1c9311ad9b4f580d4f7483c9d17e76214e6d1
--------------------------------------------------------------------------------
/test_data/imgs/6d5ec937c2211a334fbaa393fe6e9d85cf132016:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6d5ec937c2211a334fbaa393fe6e9d85cf132016
--------------------------------------------------------------------------------
/test_data/imgs/6dffe676b641d40e9d8c02aebeefee5632b7b0ea:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6dffe676b641d40e9d8c02aebeefee5632b7b0ea
--------------------------------------------------------------------------------
/test_data/imgs/6f18201083a431e0f3ba50a90c41edbd67759409:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/6f18201083a431e0f3ba50a90c41edbd67759409
--------------------------------------------------------------------------------
/test_data/imgs/70673eb061bbeb37b719f0b0dab94b36800ba18b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/70673eb061bbeb37b719f0b0dab94b36800ba18b
--------------------------------------------------------------------------------
/test_data/imgs/707f62343926c856de9bf7416d9efd8005d51fe2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/707f62343926c856de9bf7416d9efd8005d51fe2
--------------------------------------------------------------------------------
/test_data/imgs/714b4be5da18d968431097a3feba5fb9a87c0cf6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/714b4be5da18d968431097a3feba5fb9a87c0cf6
--------------------------------------------------------------------------------
/test_data/imgs/72796831775af2330fac80e3ff4362da265c0def:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/72796831775af2330fac80e3ff4362da265c0def
--------------------------------------------------------------------------------
/test_data/imgs/72ee375adc888cb83c29866cd8fa3cb035c646c5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/72ee375adc888cb83c29866cd8fa3cb035c646c5
--------------------------------------------------------------------------------
/test_data/imgs/733167a065402bd99ae948a05ca1bc69f9e5ce74:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/733167a065402bd99ae948a05ca1bc69f9e5ce74
--------------------------------------------------------------------------------
/test_data/imgs/738dbc8bcc4c09ff437313c5e4783386bfe3699d.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/738dbc8bcc4c09ff437313c5e4783386bfe3699d.err
--------------------------------------------------------------------------------
/test_data/imgs/743b446f08010a101292c122f46ddbd0139e50c7.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/743b446f08010a101292c122f46ddbd0139e50c7.err
--------------------------------------------------------------------------------
/test_data/imgs/754fc75210a99086b5f7a9fa2414ca5170e25d89:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/754fc75210a99086b5f7a9fa2414ca5170e25d89
--------------------------------------------------------------------------------
/test_data/imgs/76311d81ddb66be83c822815c06209462f0f82aa:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/76311d81ddb66be83c822815c06209462f0f82aa
--------------------------------------------------------------------------------
/test_data/imgs/792119ba1e6c6840da378b531a723c0345172e04:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/792119ba1e6c6840da378b531a723c0345172e04
--------------------------------------------------------------------------------
/test_data/imgs/799dd89d647d7bd4d2fe96d0e22837efbb2fbe51:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/799dd89d647d7bd4d2fe96d0e22837efbb2fbe51
--------------------------------------------------------------------------------
/test_data/imgs/7b0a7b1a7f7ddea61ae7676c3ad59ad29f7b3fa5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/7b0a7b1a7f7ddea61ae7676c3ad59ad29f7b3fa5
--------------------------------------------------------------------------------
/test_data/imgs/7c3e6efb9a3f8cda94a57774160325e5226c5b82:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/7c3e6efb9a3f8cda94a57774160325e5226c5b82
--------------------------------------------------------------------------------
/test_data/imgs/7c635a220b6a86cc98a5135935d926c4b98fe792:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/7c635a220b6a86cc98a5135935d926c4b98fe792
--------------------------------------------------------------------------------
/test_data/imgs/7d8a861d6799bf45efa2e4d69a29cd79ee63fcbd.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/7d8a861d6799bf45efa2e4d69a29cd79ee63fcbd.err
--------------------------------------------------------------------------------
/test_data/imgs/7e74399779889c006cb474b569c3145bc1aa7cab:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/7e74399779889c006cb474b569c3145bc1aa7cab
--------------------------------------------------------------------------------
/test_data/imgs/7e7f2db3987229c2be976cbdd8be2437bcbba032:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/7e7f2db3987229c2be976cbdd8be2437bcbba032
--------------------------------------------------------------------------------
/test_data/imgs/7ed775d8a8658516d08e36a483fd40f7edf509a8:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/7ed775d8a8658516d08e36a483fd40f7edf509a8
--------------------------------------------------------------------------------
/test_data/imgs/810421587689880e5d07b3dbf9e1c3a57e95a576:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/810421587689880e5d07b3dbf9e1c3a57e95a576
--------------------------------------------------------------------------------
/test_data/imgs/8251c7c6b06562f6b77dfa43c409593fadc7ac7e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8251c7c6b06562f6b77dfa43c409593fadc7ac7e
--------------------------------------------------------------------------------
/test_data/imgs/82591a5c069f5be539551f1146b6b572171d856c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/82591a5c069f5be539551f1146b6b572171d856c
--------------------------------------------------------------------------------
/test_data/imgs/82805e34857217d2bebe654008f6aa571dbecf23:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/82805e34857217d2bebe654008f6aa571dbecf23
--------------------------------------------------------------------------------
/test_data/imgs/82c2a78677bb24451f53cd1d76e1e076c011c9b2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/82c2a78677bb24451f53cd1d76e1e076c011c9b2
--------------------------------------------------------------------------------
/test_data/imgs/82efaff92cfa49db5b86e4ab659361cc57d8057e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/82efaff92cfa49db5b86e4ab659361cc57d8057e
--------------------------------------------------------------------------------
/test_data/imgs/84f10f50bbf59618e1d9d8e419580170b9c9e872:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/84f10f50bbf59618e1d9d8e419580170b9c9e872
--------------------------------------------------------------------------------
/test_data/imgs/85456e0bf9d7ef25f77e5ae268215529ef6a0cf0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/85456e0bf9d7ef25f77e5ae268215529ef6a0cf0
--------------------------------------------------------------------------------
/test_data/imgs/87ece0962eeeee37e3af6e4c958ff3a8c0d667d5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/87ece0962eeeee37e3af6e4c958ff3a8c0d667d5
--------------------------------------------------------------------------------
/test_data/imgs/886bc7247ed62bbeeb20688565124bdbe76a3e11:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/886bc7247ed62bbeeb20688565124bdbe76a3e11
--------------------------------------------------------------------------------
/test_data/imgs/897c49b644c870f7deb13fe39f50f21f9a5108e2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/897c49b644c870f7deb13fe39f50f21f9a5108e2
--------------------------------------------------------------------------------
/test_data/imgs/898e230b10ff2e3c03baccc780621a5fb6f891e6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/898e230b10ff2e3c03baccc780621a5fb6f891e6
--------------------------------------------------------------------------------
/test_data/imgs/89aa19d58b04f1f9bd49489b2c563517fdeb2710:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/89aa19d58b04f1f9bd49489b2c563517fdeb2710
--------------------------------------------------------------------------------
/test_data/imgs/89b3862183af3c89423775d0393f6ec9db8cc1b5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/89b3862183af3c89423775d0393f6ec9db8cc1b5
--------------------------------------------------------------------------------
/test_data/imgs/8b083720865bb8209daa355b11ecdfd17e923e2f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8b083720865bb8209daa355b11ecdfd17e923e2f
--------------------------------------------------------------------------------
/test_data/imgs/8b1512807020c2285a8a704fb3e55a7144082a89:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8b1512807020c2285a8a704fb3e55a7144082a89
--------------------------------------------------------------------------------
/test_data/imgs/8b3085b4885b8df95aaa99687de20286d9a5c4c7.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8b3085b4885b8df95aaa99687de20286d9a5c4c7.err
--------------------------------------------------------------------------------
/test_data/imgs/8cb2d68f492ac827a23cb51949f32e9078db576d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8cb2d68f492ac827a23cb51949f32e9078db576d
--------------------------------------------------------------------------------
/test_data/imgs/8cf0b620f0eb6c6bc2e8f55664d46817ba22e720.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8cf0b620f0eb6c6bc2e8f55664d46817ba22e720.err
--------------------------------------------------------------------------------
/test_data/imgs/8f50fdb12fe1d3e974779b87838217186991da5e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8f50fdb12fe1d3e974779b87838217186991da5e
--------------------------------------------------------------------------------
/test_data/imgs/8ffba73acd9f018570c454d6aca0ed86b1d30bc4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/8ffba73acd9f018570c454d6aca0ed86b1d30bc4
--------------------------------------------------------------------------------
/test_data/imgs/90680304f53b5f17a4823f1717c34bb88cc5eb69:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/90680304f53b5f17a4823f1717c34bb88cc5eb69
--------------------------------------------------------------------------------
/test_data/imgs/9272c16dad48d18da4bbdff5c1de4488de3f26b3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9272c16dad48d18da4bbdff5c1de4488de3f26b3
--------------------------------------------------------------------------------
/test_data/imgs/93119d26ee623fc02f3efcbd35bf7cd5901adb57:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/93119d26ee623fc02f3efcbd35bf7cd5901adb57
--------------------------------------------------------------------------------
/test_data/imgs/93e45c73a8b660f2e06b11a64114d513209ffadc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/93e45c73a8b660f2e06b11a64114d513209ffadc
--------------------------------------------------------------------------------
/test_data/imgs/93e670e65405d0cb1a3f09a55e57df244e3a0051.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/93e670e65405d0cb1a3f09a55e57df244e3a0051.err
--------------------------------------------------------------------------------
/test_data/imgs/94d59e52b8ca1959939d7a75ec92d363bf28a66d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/94d59e52b8ca1959939d7a75ec92d363bf28a66d
--------------------------------------------------------------------------------
/test_data/imgs/950a54f5c06ed0eee3262ade9dbe4c82908cdb18.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/950a54f5c06ed0eee3262ade9dbe4c82908cdb18.err
--------------------------------------------------------------------------------
/test_data/imgs/952ff8d7fa7563608b875e0f3c25e4d139a04df2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/952ff8d7fa7563608b875e0f3c25e4d139a04df2
--------------------------------------------------------------------------------
/test_data/imgs/95ea7827d5c753978c046fc2fbe6017f9bc54838:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/95ea7827d5c753978c046fc2fbe6017f9bc54838
--------------------------------------------------------------------------------
/test_data/imgs/9923f855239cb0c7391f76f7ac1d0b2856615344.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9923f855239cb0c7391f76f7ac1d0b2856615344.err
--------------------------------------------------------------------------------
/test_data/imgs/9a34d8acf41cdb5c3a96be58c38f77c4d378c7b6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9a34d8acf41cdb5c3a96be58c38f77c4d378c7b6
--------------------------------------------------------------------------------
/test_data/imgs/9c1b6ed7f91f1b9e309ceea36c04924c14574e19:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9c1b6ed7f91f1b9e309ceea36c04924c14574e19
--------------------------------------------------------------------------------
/test_data/imgs/9c337c4faba6365ebe7c2dc758ccd587c38996f7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9c337c4faba6365ebe7c2dc758ccd587c38996f7
--------------------------------------------------------------------------------
/test_data/imgs/9c3a085ef96ab8d7d87cd536857a9c91be066255.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9c3a085ef96ab8d7d87cd536857a9c91be066255.err
--------------------------------------------------------------------------------
/test_data/imgs/9ca318f6a3e1c5919b4b824f7d2a564ae93b5ac2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9ca318f6a3e1c5919b4b824f7d2a564ae93b5ac2
--------------------------------------------------------------------------------
/test_data/imgs/9d670accdc996646dda45e8d7e99dc40e3308a99:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9d670accdc996646dda45e8d7e99dc40e3308a99
--------------------------------------------------------------------------------
/test_data/imgs/9d94a0be40cbda008ac6dc223ed752921326426f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9d94a0be40cbda008ac6dc223ed752921326426f
--------------------------------------------------------------------------------
/test_data/imgs/9e1357c1f1025a1f2a7967ff6291b48b2932d943:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9e1357c1f1025a1f2a7967ff6291b48b2932d943
--------------------------------------------------------------------------------
/test_data/imgs/9f2e516d7cb789a2dc3a6653e4b6f5fc43881ef2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9f2e516d7cb789a2dc3a6653e4b6f5fc43881ef2
--------------------------------------------------------------------------------
/test_data/imgs/9f985365b6a78ae88b207a138df21d1580086c87:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/9f985365b6a78ae88b207a138df21d1580086c87
--------------------------------------------------------------------------------
/test_data/imgs/a0a56faf10958e8b34a9868c844134dea4a1d282:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a0a56faf10958e8b34a9868c844134dea4a1d282
--------------------------------------------------------------------------------
/test_data/imgs/a0da0acf070154a3e508ac4cffae88d21a225ae0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a0da0acf070154a3e508ac4cffae88d21a225ae0
--------------------------------------------------------------------------------
/test_data/imgs/a1de7d5b805f40ab84cdef19512412f1faf9d994:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a1de7d5b805f40ab84cdef19512412f1faf9d994
--------------------------------------------------------------------------------
/test_data/imgs/a279f2eef620ff671dca6e18c2d2a42405492b25:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a279f2eef620ff671dca6e18c2d2a42405492b25
--------------------------------------------------------------------------------
/test_data/imgs/a32919d34cbbd9fbe682f45f03ee50fe99174759:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a32919d34cbbd9fbe682f45f03ee50fe99174759
--------------------------------------------------------------------------------
/test_data/imgs/a33854a254d3c5ed7f3c498bad1157485e6f8555.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a33854a254d3c5ed7f3c498bad1157485e6f8555.err
--------------------------------------------------------------------------------
/test_data/imgs/a37a1b62199cf40e36d1d1ea2c2b74281e3ac830:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a37a1b62199cf40e36d1d1ea2c2b74281e3ac830
--------------------------------------------------------------------------------
/test_data/imgs/a4273278154995c60f08d371bbbc5b3a27abe188:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a4273278154995c60f08d371bbbc5b3a27abe188
--------------------------------------------------------------------------------
/test_data/imgs/a50f24fd13fd901c766e7a227ee057790c669688:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a50f24fd13fd901c766e7a227ee057790c669688
--------------------------------------------------------------------------------
/test_data/imgs/a5c1d34d06b0694027d8fc4bffb8bbecf70bf025:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a5c1d34d06b0694027d8fc4bffb8bbecf70bf025
--------------------------------------------------------------------------------
/test_data/imgs/a864a887a29cf0226a3b81cbe7d2aff34edbe60a.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a864a887a29cf0226a3b81cbe7d2aff34edbe60a.err
--------------------------------------------------------------------------------
/test_data/imgs/a89d16f710827c300ef1499c8ad3df44f354f42c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a89d16f710827c300ef1499c8ad3df44f354f42c
--------------------------------------------------------------------------------
/test_data/imgs/a9139a7cb01d10f13d6ebe3f8bc3d34f71d37fcb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a9139a7cb01d10f13d6ebe3f8bc3d34f71d37fcb
--------------------------------------------------------------------------------
/test_data/imgs/a980806639907ee2f2a5eb24b2483a31c98a77ae:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a980806639907ee2f2a5eb24b2483a31c98a77ae
--------------------------------------------------------------------------------
/test_data/imgs/a9ad3a80662dd5532a522322b8cafcacb43f4286:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a9ad3a80662dd5532a522322b8cafcacb43f4286
--------------------------------------------------------------------------------
/test_data/imgs/a9c4e975ce3b83117552fbf7d0bc8bfa74375ae4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/a9c4e975ce3b83117552fbf7d0bc8bfa74375ae4
--------------------------------------------------------------------------------
/test_data/imgs/ab8da29058d9faaa6bf479a84894c6df1e56457f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ab8da29058d9faaa6bf479a84894c6df1e56457f
--------------------------------------------------------------------------------
/test_data/imgs/adfafac6077677d934b9dbed2567cebe98b25f36:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/adfafac6077677d934b9dbed2567cebe98b25f36
--------------------------------------------------------------------------------
/test_data/imgs/ae8480327aabbf12e179a4861447f273f7721dc0.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ae8480327aabbf12e179a4861447f273f7721dc0.err
--------------------------------------------------------------------------------
/test_data/imgs/aeb8c0d5147419c9c2965baa62aafe9e22f5087f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/aeb8c0d5147419c9c2965baa62aafe9e22f5087f
--------------------------------------------------------------------------------
/test_data/imgs/b124e54dd70f6a07b1358458635816f890f26a64.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b124e54dd70f6a07b1358458635816f890f26a64.err
--------------------------------------------------------------------------------
/test_data/imgs/b2af7ff3ffac77db2dd0270af18028ed6f38e72a.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b2af7ff3ffac77db2dd0270af18028ed6f38e72a.err
--------------------------------------------------------------------------------
/test_data/imgs/b2b9995ba5e599ccbfba201ab3a7685d435b9b73:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b2b9995ba5e599ccbfba201ab3a7685d435b9b73
--------------------------------------------------------------------------------
/test_data/imgs/b2e8e715c3a0496574f7e93973cb2737011b1fad.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b2e8e715c3a0496574f7e93973cb2737011b1fad.err
--------------------------------------------------------------------------------
/test_data/imgs/b3a4e8edec30e7837c0be5cf940cda54f90d7155:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b3a4e8edec30e7837c0be5cf940cda54f90d7155
--------------------------------------------------------------------------------
/test_data/imgs/b4beb073aedc8de949c2de0aaa1c8d7818371c44:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b4beb073aedc8de949c2de0aaa1c8d7818371c44
--------------------------------------------------------------------------------
/test_data/imgs/b4c1ff147a09fdda7b3d92e6e98d164a4bbf9288:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b4c1ff147a09fdda7b3d92e6e98d164a4bbf9288
--------------------------------------------------------------------------------
/test_data/imgs/b4edea6216fa5e09581ed7a78600832679c63361.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b4edea6216fa5e09581ed7a78600832679c63361.err
--------------------------------------------------------------------------------
/test_data/imgs/b593e5630d02e6ba5241542504d1362e23e7be50:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b593e5630d02e6ba5241542504d1362e23e7be50
--------------------------------------------------------------------------------
/test_data/imgs/b5c249eb99c7233c19d359847d5bce6a532cefb6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b5c249eb99c7233c19d359847d5bce6a532cefb6
--------------------------------------------------------------------------------
/test_data/imgs/b5f5fcd5810a48eb62ef0c1501a4618ac876ca6f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b5f5fcd5810a48eb62ef0c1501a4618ac876ca6f
--------------------------------------------------------------------------------
/test_data/imgs/b60f2f277c7833e062c361da8cc207cccdb4b004:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b60f2f277c7833e062c361da8cc207cccdb4b004
--------------------------------------------------------------------------------
/test_data/imgs/b6753ff0718ff0451a417745fcf4fff24d54de77:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b6753ff0718ff0451a417745fcf4fff24d54de77
--------------------------------------------------------------------------------
/test_data/imgs/b98034adb1f5678d8f3831f89b1c96996390f68f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/b98034adb1f5678d8f3831f89b1c96996390f68f
--------------------------------------------------------------------------------
/test_data/imgs/ba681454a8e29b642993808e89e882e5905b9294:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ba681454a8e29b642993808e89e882e5905b9294
--------------------------------------------------------------------------------
/test_data/imgs/ba6b129be254ff9efe1d8c2d2286160666151c0b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ba6b129be254ff9efe1d8c2d2286160666151c0b
--------------------------------------------------------------------------------
/test_data/imgs/ba94dbe30940700d7e155cca992830396b485af7.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ba94dbe30940700d7e155cca992830396b485af7.err
--------------------------------------------------------------------------------
/test_data/imgs/bae30ec6ec41293a174f00d00cc480dfb392738f.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/bae30ec6ec41293a174f00d00cc480dfb392738f.err
--------------------------------------------------------------------------------
/test_data/imgs/bbf3b22bb22130ac7f127a01b85a06106468dc60:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/bbf3b22bb22130ac7f127a01b85a06106468dc60
--------------------------------------------------------------------------------
/test_data/imgs/bde935d22b07f13bcef502876541b81a658c942e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/bde935d22b07f13bcef502876541b81a658c942e
--------------------------------------------------------------------------------
/test_data/imgs/beb20fff57294631eaa87642645ed284af736b0a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/beb20fff57294631eaa87642645ed284af736b0a
--------------------------------------------------------------------------------
/test_data/imgs/bf17156cca9d5af3e443921bd99e76569cd7f2cb.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/bf17156cca9d5af3e443921bd99e76569cd7f2cb.err
--------------------------------------------------------------------------------
/test_data/imgs/bff6e4ab13c7e533d1a22046401d59eee477bf9c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/bff6e4ab13c7e533d1a22046401d59eee477bf9c
--------------------------------------------------------------------------------
/test_data/imgs/c0398757db4c70ee6fee853d9ef5b7e6828b62f5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/c0398757db4c70ee6fee853d9ef5b7e6828b62f5
--------------------------------------------------------------------------------
/test_data/imgs/c46f17525dd7b2b51bbbde95ac255add2b131487:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/c46f17525dd7b2b51bbbde95ac255add2b131487
--------------------------------------------------------------------------------
/test_data/imgs/c485a6a3c10c4b4c746c41649e72ded49641142a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/c485a6a3c10c4b4c746c41649e72ded49641142a
--------------------------------------------------------------------------------
/test_data/imgs/c50250052e1e2a7a5a57cf5fae1563e9436c1083:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/c50250052e1e2a7a5a57cf5fae1563e9436c1083
--------------------------------------------------------------------------------
/test_data/imgs/c5e27cdb53c82f8fbe2ad3fbf26acf1672652d71:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/c5e27cdb53c82f8fbe2ad3fbf26acf1672652d71
--------------------------------------------------------------------------------
/test_data/imgs/c87483e60977e6b2dbd9b9f84acb77addcb73ddb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/c87483e60977e6b2dbd9b9f84acb77addcb73ddb
--------------------------------------------------------------------------------
/test_data/imgs/cbec33a2d99714c4a9c8a4fc08dd61cecbd62b42:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/cbec33a2d99714c4a9c8a4fc08dd61cecbd62b42
--------------------------------------------------------------------------------
/test_data/imgs/ce290e2b628224ae875d72d70089c6bd243bddb3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ce290e2b628224ae875d72d70089c6bd243bddb3
--------------------------------------------------------------------------------
/test_data/imgs/cecaaf9522c2f4736dafcd3a5b3d50ffd84b734e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/cecaaf9522c2f4736dafcd3a5b3d50ffd84b734e
--------------------------------------------------------------------------------
/test_data/imgs/ced55e3446de04a78787d77d1bf05facf62ffa36:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ced55e3446de04a78787d77d1bf05facf62ffa36
--------------------------------------------------------------------------------
/test_data/imgs/cf9229d1c5dc7bcbb24652bedbe944e2697f3ac4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/cf9229d1c5dc7bcbb24652bedbe944e2697f3ac4
--------------------------------------------------------------------------------
/test_data/imgs/d072396879f7ce4de0ea1f0342fbce8184bc9b90:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d072396879f7ce4de0ea1f0342fbce8184bc9b90
--------------------------------------------------------------------------------
/test_data/imgs/d0ce8af2b654c71640ad47563461eb839f1e5926:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d0ce8af2b654c71640ad47563461eb839f1e5926
--------------------------------------------------------------------------------
/test_data/imgs/d138ad67fea3208e8af394cda288a5588fa40e53:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d138ad67fea3208e8af394cda288a5588fa40e53
--------------------------------------------------------------------------------
/test_data/imgs/d1dcfe11bc60e7a4e39a6c9f8cd8b8cf612b5684:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d1dcfe11bc60e7a4e39a6c9f8cd8b8cf612b5684
--------------------------------------------------------------------------------
/test_data/imgs/d21d8a7862ec6e9d98a14420637ba0c41a5c70c2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d21d8a7862ec6e9d98a14420637ba0c41a5c70c2
--------------------------------------------------------------------------------
/test_data/imgs/d24175857572390d71708e4a91dbd770b47aee9f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d24175857572390d71708e4a91dbd770b47aee9f
--------------------------------------------------------------------------------
/test_data/imgs/d2be50438cf0cfdbebd073e497dd552acbb82f4d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d2be50438cf0cfdbebd073e497dd552acbb82f4d
--------------------------------------------------------------------------------
/test_data/imgs/d4c95653ddb9f87dc3e18a85f37308a81386eff9:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d4c95653ddb9f87dc3e18a85f37308a81386eff9
--------------------------------------------------------------------------------
/test_data/imgs/d612ed21481ae709cc9d53d18817540c475c86b6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d612ed21481ae709cc9d53d18817540c475c86b6
--------------------------------------------------------------------------------
/test_data/imgs/d68b52f2d6bf23b8f9498e9f4efc29a813bcc87d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d68b52f2d6bf23b8f9498e9f4efc29a813bcc87d
--------------------------------------------------------------------------------
/test_data/imgs/d6d5cc68a6fbe0416f106b3c87dfef3105c8e22f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d6d5cc68a6fbe0416f106b3c87dfef3105c8e22f
--------------------------------------------------------------------------------
/test_data/imgs/d7869815dee4928ef01e8f83411535f62f59e0fe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d7869815dee4928ef01e8f83411535f62f59e0fe
--------------------------------------------------------------------------------
/test_data/imgs/d7960a0b2291e4780c827900f9f2e695d499d224:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d7960a0b2291e4780c827900f9f2e695d499d224
--------------------------------------------------------------------------------
/test_data/imgs/d835ea9c2b2ed51699140a8c6a96e5f2043b8723:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d835ea9c2b2ed51699140a8c6a96e5f2043b8723
--------------------------------------------------------------------------------
/test_data/imgs/d9d1693151647e676f86b00f8909d426cdeda2be:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/d9d1693151647e676f86b00f8909d426cdeda2be
--------------------------------------------------------------------------------
/test_data/imgs/da7eb0078607ff0ba9f67985b5e00bc50caca43d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/da7eb0078607ff0ba9f67985b5e00bc50caca43d
--------------------------------------------------------------------------------
/test_data/imgs/dbcd9ce5e606790da10d0ee153bcf3773715673c.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/dbcd9ce5e606790da10d0ee153bcf3773715673c.err
--------------------------------------------------------------------------------
/test_data/imgs/dbef3b868926d882a5f1de15542de4c2d054ea23.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/dbef3b868926d882a5f1de15542de4c2d054ea23.err
--------------------------------------------------------------------------------
/test_data/imgs/dcf5fbf5edd89c42e0d54b1989a52727078e3ad5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/dcf5fbf5edd89c42e0d54b1989a52727078e3ad5
--------------------------------------------------------------------------------
/test_data/imgs/dd2194ccd09c87e5772194074db4a6d676985660:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/dd2194ccd09c87e5772194074db4a6d676985660
--------------------------------------------------------------------------------
/test_data/imgs/de49b43ee6a3b96cb7eef71420c73aa41655625c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/de49b43ee6a3b96cb7eef71420c73aa41655625c
--------------------------------------------------------------------------------
/test_data/imgs/df5bc123abb140a26cbca2d6e2f65d21b4c660a5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/df5bc123abb140a26cbca2d6e2f65d21b4c660a5
--------------------------------------------------------------------------------
/test_data/imgs/e00657c680ef7d9fd8c6dca4b22533c415ffc141.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e00657c680ef7d9fd8c6dca4b22533c415ffc141.err
--------------------------------------------------------------------------------
/test_data/imgs/e0a7bbec4a257639e6386d8d873cb02e5144c5b0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e0a7bbec4a257639e6386d8d873cb02e5144c5b0
--------------------------------------------------------------------------------
/test_data/imgs/e1a52f3ee254519159d5330f53ee6d3a3f5793c4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e1a52f3ee254519159d5330f53ee6d3a3f5793c4
--------------------------------------------------------------------------------
/test_data/imgs/e1b01c6a8549be14dbdcbe2e515ccb9c635a8a60:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e1b01c6a8549be14dbdcbe2e515ccb9c635a8a60
--------------------------------------------------------------------------------
/test_data/imgs/e1c13c2f00f3c79585d30b2e8af77f71b4b59f9d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e1c13c2f00f3c79585d30b2e8af77f71b4b59f9d
--------------------------------------------------------------------------------
/test_data/imgs/e1f81435572285a258214d71295f02860083a703.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e1f81435572285a258214d71295f02860083a703.err
--------------------------------------------------------------------------------
/test_data/imgs/e304a0256b5a03fea0c24a81dcfdf9d52e1b4b6e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e304a0256b5a03fea0c24a81dcfdf9d52e1b4b6e
--------------------------------------------------------------------------------
/test_data/imgs/e57edd2276615158a186db84c1b4427625886f63.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e57edd2276615158a186db84c1b4427625886f63.err
--------------------------------------------------------------------------------
/test_data/imgs/e5aa2b99a3e0d44a4278841beb0e35d675db72fa:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e5aa2b99a3e0d44a4278841beb0e35d675db72fa
--------------------------------------------------------------------------------
/test_data/imgs/e636493730402893b89f33ca6e6495f55696571c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e636493730402893b89f33ca6e6495f55696571c
--------------------------------------------------------------------------------
/test_data/imgs/e703942784b1d2bc9232188fbf0d5b568ede1158:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e703942784b1d2bc9232188fbf0d5b568ede1158
--------------------------------------------------------------------------------
/test_data/imgs/e795a05a771182c47215d958dbe3e03d2bc542df.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e795a05a771182c47215d958dbe3e03d2bc542df.err
--------------------------------------------------------------------------------
/test_data/imgs/e97bc2ba0f353b7b615b009771aa61633fbc8bdd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/e97bc2ba0f353b7b615b009771aa61633fbc8bdd
--------------------------------------------------------------------------------
/test_data/imgs/ea5a2da66b90f5cae784179707c51088f89dd4f2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ea5a2da66b90f5cae784179707c51088f89dd4f2
--------------------------------------------------------------------------------
/test_data/imgs/ea9f6167092563bd536cd306b96cc5bf19e6ca71:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ea9f6167092563bd536cd306b96cc5bf19e6ca71
--------------------------------------------------------------------------------
/test_data/imgs/eb03a2f9f1e8d6bfec939458f7f8c8bdf94dcb8f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/eb03a2f9f1e8d6bfec939458f7f8c8bdf94dcb8f
--------------------------------------------------------------------------------
/test_data/imgs/eb177f07e6bfe31fbfa65411a7a3d243d9396247:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/eb177f07e6bfe31fbfa65411a7a3d243d9396247
--------------------------------------------------------------------------------
/test_data/imgs/eb3de56a6f482918a00c93a9541830caf3f5b448:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/eb3de56a6f482918a00c93a9541830caf3f5b448
--------------------------------------------------------------------------------
/test_data/imgs/ebd6cec9ffa3cefa11a2e72934fda4d3fe317468:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ebd6cec9ffa3cefa11a2e72934fda4d3fe317468
--------------------------------------------------------------------------------
/test_data/imgs/eca8fbe1d9e52a3316fcd07fa3eea2bc5260f119:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/eca8fbe1d9e52a3316fcd07fa3eea2bc5260f119
--------------------------------------------------------------------------------
/test_data/imgs/ecd92f9fbdbbbcd3c3dccb93241ec7aa6937b04d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ecd92f9fbdbbbcd3c3dccb93241ec7aa6937b04d
--------------------------------------------------------------------------------
/test_data/imgs/ed0f3ccabf33a80fd2233521e4c859cd501a7449.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ed0f3ccabf33a80fd2233521e4c859cd501a7449.err
--------------------------------------------------------------------------------
/test_data/imgs/ef23ebb71d46893bc91f622b557398bc4f91e4fd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ef23ebb71d46893bc91f622b557398bc4f91e4fd
--------------------------------------------------------------------------------
/test_data/imgs/ef99e02ffe780f131876ce84263649ae93fbb70b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ef99e02ffe780f131876ce84263649ae93fbb70b
--------------------------------------------------------------------------------
/test_data/imgs/f0f4fa14b5fb6aefd1207d113a56f7b3835b2a6b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f0f4fa14b5fb6aefd1207d113a56f7b3835b2a6b
--------------------------------------------------------------------------------
/test_data/imgs/f2a3c3b1c6a04ee04f1d4239fe9dbc17bca2f01b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f2a3c3b1c6a04ee04f1d4239fe9dbc17bca2f01b
--------------------------------------------------------------------------------
/test_data/imgs/f2d2d9f9797a9b2dfaefea0fc85aed8e058d6d6a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f2d2d9f9797a9b2dfaefea0fc85aed8e058d6d6a
--------------------------------------------------------------------------------
/test_data/imgs/f34e8de77d5311769eb4b15df234416d41462a82:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f34e8de77d5311769eb4b15df234416d41462a82
--------------------------------------------------------------------------------
/test_data/imgs/f4afb42d5c0a917229d03c670441f54d9b1742cd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f4afb42d5c0a917229d03c670441f54d9b1742cd
--------------------------------------------------------------------------------
/test_data/imgs/f4de8681244e4f71e6d5d1955b0edaa157a87615.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f4de8681244e4f71e6d5d1955b0edaa157a87615.err
--------------------------------------------------------------------------------
/test_data/imgs/f4f7a8f2e4b869db086887786e0980e79c62e5cb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f4f7a8f2e4b869db086887786e0980e79c62e5cb
--------------------------------------------------------------------------------
/test_data/imgs/f604a84c88a5f0ca8742323a8284acfdc77c367b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f604a84c88a5f0ca8742323a8284acfdc77c367b
--------------------------------------------------------------------------------
/test_data/imgs/f6b019b684852521973910be20737841b630ca0d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f6b019b684852521973910be20737841b630ca0d
--------------------------------------------------------------------------------
/test_data/imgs/f8c1e56becdb013c30534e58fa66b1ead583e771:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f8c1e56becdb013c30534e58fa66b1ead583e771
--------------------------------------------------------------------------------
/test_data/imgs/f90218c423674fd12950dbef375364e68b72d78e.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/f90218c423674fd12950dbef375364e68b72d78e.err
--------------------------------------------------------------------------------
/test_data/imgs/fa3cee00351a1cac1eaac03697db1337ef4e264f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/fa3cee00351a1cac1eaac03697db1337ef4e264f
--------------------------------------------------------------------------------
/test_data/imgs/faa106b3776262c7c608e11de10351bc9939e65f.err:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/faa106b3776262c7c608e11de10351bc9939e65f.err
--------------------------------------------------------------------------------
/test_data/imgs/fb6be5167df6aa84b9e94c8713cd9a4da1749b7a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/fb6be5167df6aa84b9e94c8713cd9a4da1749b7a
--------------------------------------------------------------------------------
/test_data/imgs/fcebb004688915fcd524f7131723ae9e2178690b:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/fcebb004688915fcd524f7131723ae9e2178690b
--------------------------------------------------------------------------------
/test_data/imgs/ff15810aa43a04d9dfecae90d11aa1f2ad5fa519:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thatguystone/swan/d1079a5d0c05df346bbf2d45553715a1688fa1ef/test_data/imgs/ff15810aa43a04d9dfecae90d11aa1f2ad5fa519
--------------------------------------------------------------------------------
/test_data/processors/comics/dilbert.html.out:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test_data/processors/comics/dilbert.text.out:
--------------------------------------------------------------------------------
1 | Free Will Is An Illusion - Dilbert by Scott Adams
2 |
--------------------------------------------------------------------------------
/test_data/processors/comics/xkcd_1481.html.out:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test_data/processors/comics/xkcd_1481.text.out:
--------------------------------------------------------------------------------
1 | ACCESS LIMITS: Clients may maintain connections to the server for no more than 86,400 seconds per day. If you need additional time, you may contact IERS to file a request for up to one additional second.
2 |
--------------------------------------------------------------------------------
/test_data/processors/default/apod.nasa.gov.html.out:
--------------------------------------------------------------------------------
1 |
Explanation:
2 | The striking spiral galaxy
3 | M104 is famous
4 | for its nearly edge-on
5 | profile featuring a broad ring of obscuring dust lanes.
6 | Seen in silhouette against an extensive bulge of stars, the swath of
7 | cosmic dust lends a
8 | broad brimmed hat-like
9 | appearance to the galaxy suggesting
10 | the more popular moniker, The Sombrero Galaxy.
11 | Hubble Space Telescope
12 | and ground-based Subaru data have been
13 | reprocessed with amateur color image data to
14 | create this sharp view of
15 | the well-known galaxy.
16 | The processing results in a natural color appearance
17 | and preserves details often lost in overwhelming glare of M104's
18 | bright central bulge when viewed with smaller ground-based
19 | instruments.
20 | Also known as NGC 4594, the Sombrero galaxy can be seen
21 | across the spectrum
22 | and is thought to host a central
23 | supermassive
24 | black hole.
25 | About 50,000 light-years across and 28 million light-years away,
26 | M104 is one of the largest galaxies at the southern edge of the
27 | Virgo
28 | Galaxy Cluster.
29 |
--------------------------------------------------------------------------------
/test_data/processors/default/apod.nasa.gov.text.out:
--------------------------------------------------------------------------------
1 | Explanation: The striking spiral galaxy M104 is famous for its nearly edge-on profile featuring a broad ring of obscuring dust lanes. Seen in silhouette against an extensive bulge of stars, the swath of cosmic dust lends a broad brimmed hat-like appearance to the galaxy suggesting the more popular moniker, The Sombrero Galaxy. Hubble Space Telescope and ground-based Subaru data have been reprocessed with amateur color image data to create this sharp view of the well-known galaxy. The processing results in a natural color appearance and preserves details often lost in overwhelming glare of M104's bright central bulge when viewed with smaller ground-based instruments. Also known as NGC 4594, the Sombrero galaxy can be seen across the spectrum and is thought to host a central supermassive black hole. About 50,000 light-years across and 28 million light-years away, M104 is one of the largest galaxies at the southern edge of the Virgo Galaxy Cluster.
2 |
--------------------------------------------------------------------------------
/test_data/processors/default/engadget.com.text.out:
--------------------------------------------------------------------------------
1 | There have been a few hints that Apple wants to integrate Beats Music into its existing software, but there are now signs that the tie-in will go especially deep -- and that Android users won't be left behind. Sources for 9to5Mac claim that Apple not only plans to weave Beats-based streaming into Apple TV, iOS and iTunes, but that it's writing its own Android app from scratch (sorry, no Windows Phone version). The move wouldn't be completely shocking given that Tim Cook said he was cool with Android apps when they made sense, but it'd still represent an important milestone for a company that frequently tries to get away from Google.
2 |
3 | As for what the service entails? Not surprisingly, it's reported to be a best-of-both offering. You could search for anything in the Beats or iTunes catalog, and you'd still see Beats' human-made playlists and social networking. You could flag those tracks you want to hear offline, too. Importantly, Beats wouldn't override Apple's existing services. You could still use the likes of iTunes Match syncing and iTunes Radio streaming, even when they're occasionally redundant.
4 |
5 | How soon this Beats-backed technology would launch could be up in the air, though. The report backs rumors that Apple is trying to lower the price (possibly to $8 per month), which might depend on labels agreeing to different rates. Also, development is supposedly a "mess." Apple may not be all that clear about its vision for the service, and veteran Apple staffers purportedly aren't happy to see Beats engineers taking on important positions. While the reworked service was meant to launch in March, the tipsters now think it's more likely to show up at the Worldwide Developers conference in June. However it shakes out, everything suggests that this Beats-based project is no small feat -- Apple wants to take on streaming heavyweights like Spotify, even if it means delays and support for rivals' platforms.
6 |
--------------------------------------------------------------------------------
/test_data/processors/default/text_formatting.html.out:
--------------------------------------------------------------------------------
1 | This
2 | sentence
3 | should
4 | not
5 | be
6 | spread
7 | over
8 | multiple
9 | lines.There should be a newline between this and the previous paragraph.
10 |
--------------------------------------------------------------------------------
/test_data/processors/default/text_formatting.in:
--------------------------------------------------------------------------------
1 | http://example.com/text_formatting
2 |
3 |
10 |
11 | This
12 | sentence
13 | should
14 |
15 | not
16 |
17 | be
18 |
19 | spread
20 |
21 | over
22 |
23 | multiple
24 |
25 | lines.
26 |
27 |
28 |
29 | There should be a newline between this and the previous paragraph.
30 |
31 |
--------------------------------------------------------------------------------
/test_data/processors/default/text_formatting.text.out:
--------------------------------------------------------------------------------
1 | This sentence should not be spread over multiple lines.
2 |
3 | There should be a newline between this and the previous paragraph.
4 |
--------------------------------------------------------------------------------
/test_data/python-goose/authors/test_author_schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/tweet/",
3 | "expected": {
4 | "authors": [
5 | "KEVIN SACK",
6 | "ADAM NOSSITER",
7 | "PAM BELLUCK",
8 | "SHERI FINK"
9 | ]
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_allnewlyrics1.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://allnewlyrics.com/only-one-lyrics-pj-morton-ft-stevie-wonder.html",
3 | "expected": {
4 | "meta_description": "All about hot new song with lyrics at AllNewLyrics.Com",
5 | "domain": "allnewlyrics.com",
6 | "final_url": "http://allnewlyrics.com/only-one-lyrics-pj-morton-ft-stevie-wonder.html",
7 | "meta_keywords": "Music, Songs, Lyrics, Letras, Lirik, Tekst, Text, Testo, Paroles, Popular, New",
8 | "cleaned_text": "PJ Morton \u2013 Only One Lyrics (Ft. Stevie Wonder)\n\nI\u2019m pretty sure I don\u2019t need anything else\nThis is the best feeling I\u2019ve ever felt",
9 | "tags": [
10 | "PJ Morton",
11 | "Stevie Wonder"
12 | ],
13 | "title": "\u201cOnly One\u201d Lyrics : PJ Morton (Ft. Stevie Wonder)",
14 | "meta_favicon": "",
15 | "meta_lang": "en"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_aolNews.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.aolnews.com/nation/article/the-few-the-proud-the-marines-getting-a-makeover/19592478",
3 | "expected": {
4 | "meta_description": "(Aug. 13) -- Declaring",
5 | "domain": "www.aolnews.com",
6 | "final_url": "http://www.aolnews.com/nation/article/the-few-the-proud-the-marines-getting-a-makeover/19592478",
7 | "meta_keywords": "news, update, breaking, nation, U.S., elections, world, entertainment, sports, business, weird news, health, science, latest news articles, breaking news, current news, top news",
8 | "cleaned_text": "WASHINGTON (Aug. 13) -- Declaring \"the maritime soul of the Marine Corps\" is",
9 | "tags": [
10 | "Defense Secretary Robert Gates",
11 | "military",
12 | "Marines",
13 | "armed forces"
14 | ],
15 | "meta_favicon": "http://o.aolcdn.com/art/ch_news/aol_favicon.ico",
16 | "meta_lang": "en"
17 | }
18 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_articlebody_attribute.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Not an Actual Content
6 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
7 |
8 |
9 |
10 |
11 | Search-and-rescue teams were mobilized from across Southeast Asia on Sunday after a commercial airliner with 162 people on board lost contact with ground controllers off the coast of Borneo, a search effort that evoked a distressingly familiar mix of grief and mystery nine months after a Malaysia Airlines jetliner disappeared over the Indian Ocean.
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_articlebody_attribute.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/test_opengraphcontent",
3 | "expected": {
4 | "cleaned_text": "Search-and-rescue teams were mobilized "
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_articlebody_itemprop.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Not an Actual Content
6 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
7 |
8 |
9 |
10 |
11 | Search-and-rescue teams were mobilized from across Southeast Asia on Sunday after a commercial airliner with 162 people on board lost contact with ground controllers off the coast of Borneo, a search effort that evoked a distressingly familiar mix of grief and mystery nine months after a Malaysia Airlines jetliner disappeared over the Indian Ocean.
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_articlebody_itemprop.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/test_opengraphcontent",
3 | "expected": {
4 | "cleaned_text": "Search-and-rescue teams were mobilized "
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_articlebody_tag.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Not an Actual Content
6 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
7 |
8 |
9 |
10 |
11 | Search-and-rescue teams were mobilized from across Southeast Asia on Sunday after a commercial airliner with 162 people on board lost contact with ground controllers off the coast of Borneo, a search effort that evoked a distressingly familiar mix of grief and mystery nine months after a Malaysia Airlines jetliner disappeared over the Indian Ocean.
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_articlebody_tag.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/test_opengraphcontent",
3 | "expected": {
4 | "cleaned_text": "Search-and-rescue teams were mobilized "
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_businessWeek1.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.businessweek.com/magazine/content/10_34/b4192066630779.htm",
3 | "expected": {
4 | "meta_description": "The Web and cable star has achieved fame by targeting nerdy guys, who she says \"control popularity\".",
5 | "domain": "www.businessweek.com",
6 | "final_url": "http://www.businessweek.com/magazine/content/10_34/b4192066630779.htm",
7 | "meta_keywords": "Olivia Munn, Attack of the Show, Jon Stewart, Daily Show, G4",
8 | "cleaned_text": "Six years ago, Olivia Munn arrived in Hollywood with fading ambitions of making it as a sports reporter and set about deploying",
9 | "title": "Olivia Munn: Queen of the Uncool",
10 | "meta_favicon": "",
11 | "meta_lang": "en"
12 | }
13 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_businessWeek2.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.businessweek.com/management/five-social-media-lessons-for-business-09202011.html",
3 | "expected": {
4 | "meta_description": "A Home Depot executive discusses the retailer's strategy for engaging consumers via Facebook, Twitter, and blogs, relying on store associates for much of the social interaction",
5 | "domain": "www.businessweek.com",
6 | "final_url": "http://www.businessweek.com/management/five-social-media-lessons-for-business-09202011.html",
7 | "meta_keywords": "Facebook, Twitter, social media, Home Depot, retailers, social media lessons",
8 | "cleaned_text": "At Home Depot, we first realized we needed to have a real conversation with",
9 | "title": "Five Social Media Lessons for Business",
10 | "meta_favicon": "",
11 | "meta_lang": null
12 | }
13 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_businessWeek3.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.businessweek.com/technology/here-comes-apples-real-tv-09132011.html",
3 | "expected": {
4 | "meta_description": "A bold, new Apple TV set would replace today\u2019s cable systems, game consoles, and 3D goggles\u2014and launch a war with cable providers",
5 | "domain": "www.businessweek.com",
6 | "final_url": "http://www.businessweek.com/technology/here-comes-apples-real-tv-09132011.html",
7 | "meta_keywords": "Apple, Apple CEO, Google, Television, Cable & Wireless, Netflix, Steve Jobs, Comcast, cable, cable TV, hulu, Roku",
8 | "cleaned_text": "Get ready, America, because by Christmas 2012 you will have an Apple TV in your living room",
9 | "meta_favicon": "",
10 | "meta_lang": null
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_businessinsider3.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.businessinsider.com/larry-page-the-untold-story-2014-4",
3 | "expected": {
4 | "meta_description": "One day in July 2001, Larry Page decided to...",
5 | "domain": "www.businessinsider.com",
6 | "final_url": "http://www.businessinsider.com/larry-page-the-untold-story-2014-4",
7 | "meta_keywords": "Google, Larry Page, Longform, Nicholas Carlson,",
8 | "cleaned_text": "One day in July 2001, Larry Page decided to fire Google",
9 | "meta_favicon": "http://static5.businessinsider.com/assets/images/faviconBI.ico",
10 | "meta_lang": "en"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_cbslocal.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://newyork.cbslocal.com/2012/06/08/bc-morning-show-american-hero-kelly-malloy/",
3 | "expected": {
4 | "meta_description": "Boomer & Craig were thrilled to welcome an American Hero into the Allstate Studio, as Kelly Malloy stopped-by and was given the royal treatment she deserved...",
5 | "domain": "newyork.cbslocal.com",
6 | "final_url": "http://newyork.cbslocal.com/2012/06/08/bc-morning-show-american-hero-kelly-malloy/",
7 | "meta_keywords": "vibNews",
8 | "cleaned_text": "Boomer & Craig were thrilled to welcome an American Hero into the Allstate Studio, as Kelly",
9 | "tags": [
10 | "Boomer & Carton",
11 | "Kelly Malloy",
12 | "Bobby Dwyer"
13 | ],
14 | "meta_favicon": "http://s2.wp.com/i/favicon.ico?m=1311976027g",
15 | "meta_lang": "en"
16 | }
17 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_cnbc1.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.cnbc.com/id/44613978",
3 | "expected": {
4 | "meta_description": "The Fed launched much anticipated \"operation twist\" with a twist\u2014it is also taking direct aim at mortgages. The Fed also warned of significant downside economic risks. Check out how it changed its statement.",
5 | "domain": "www.cnbc.com",
6 | "final_url": "http://www.cnbc.com/id/44613978",
7 | "meta_keywords": "Bonds,Economy,Interest Rates,Economy (Global),Banking,Economic Measures,Debt,Central Banks,Ben Bernanke,Federal Reserve,Currencies,Investment Strategy,Top Blogs",
8 | "cleaned_text": "Some traders found Wednesday's Fed statement to be a bit gloomier than expected.",
9 | "meta_favicon": "http://media.cnbc.com/i/CNBC/CNBC_Images/mobile_images/cnbc_iphone_icon.png",
10 | "meta_lang": null
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_cnet.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://news.cnet.com/8301-30686_3-20014053-266.html?tag=topStories1",
3 | "expected": {
4 | "meta_description": "The phone company is adding bells and whistles to its Fios TV service, including an app that turns an iPad into a TV and several other new options for taking your video content on the go. Read this blog post by Marguerite Reardon on Signal Strength.",
5 | "domain": "news.cnet.com",
6 | "final_url": "http://news.cnet.com/8301-30686_3-20014053-266.html?tag=topStories1",
7 | "meta_keywords": "Marguerite Reardon, wireless, broadband, telecom",
8 | "cleaned_text": "NEW YORK--Verizon Communications is prepping a new",
9 | "tags": [
10 | "iPad",
11 | "Verizon Communications",
12 | "Verizon Fios TV",
13 | "Fios",
14 | "Apple iPad"
15 | ],
16 | "meta_favicon": "",
17 | "meta_lang": null
18 | }
19 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_cnn1.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.cnn.com/2010/POLITICS/08/13/democrats.social.security/index.html",
3 | "expected": {
4 | "meta_description": "Democrats pledged Friday to not only keep Social Security in place, but use the historic program against Republicans ahead of the midterm election.",
5 | "domain": "www.cnn.com",
6 | "final_url": "http://www.cnn.com/2010/POLITICS/08/13/democrats.social.security/index.html",
7 | "meta_keywords": "",
8 | "cleaned_text": "Washington (CNN) -- Democrats pledged ",
9 | "title": "Democrats to use Social Security against GOP this fall - CNN.com",
10 | "meta_favicon": "http://i.cdn.turner.com/cnn/.element/img/3.0/global/misc/apple-touch-icon.png",
11 | "meta_lang": "en"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_cnn_arabic.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://arabic.cnn.com/2013/middle_east/8/3/syria.clashes/index.html",
3 | "expected": {
4 | "meta_description": "",
5 | "domain": "arabic.cnn.com",
6 | "final_url": "http://arabic.cnn.com/2013/middle_east/8/3/syria.clashes/index.html",
7 | "meta_keywords": "",
8 | "cleaned_text": "\u062f\u0645\u0634\u0642\u060c \u0633\u0648\u0631\u064a\u0627 (CNN) -- \u0623\u0643\u062f\u062a \u062c\u0647\u0627\u062a \u0633\u0648\u0631\u064a\u0629 \u0645\u0639\u0627\u0631\u0636\u0629 \u0623\u0646 \u0641\u0635\u0627\u0626\u0644 \u0645\u0633\u0644\u062d\u0629 \u0645\u0639\u0627\u0631\u0636\u0629 \u0644\u0646\u0638\u0627\u0645 \u0627\u0644\u0631\u0626\u064a\u0633 \u0628\u0634\u0627\u0631 \u0627\u0644\u0623\u0633\u062f \u0648\u0639\u0644\u0649 \u0635\u0644\u0629 \u0628\u0640\"\u0627\u0644\u062c\u064a\u0634 \u0627\u0644\u062d\u0631\" \u062a\u0645\u0643\u0646\u062a \u0645\u0646 \u0627\u0644\u0633\u064a\u0637\u0631\u0629 \u0639\u0644\u0649 \u0645\u0633\u062a\u0648\u062f\u0639\u0627\u062a \u0644\u0644\u0623\u0633\u0644",
9 | "meta_favicon": "",
10 | "meta_lang": "ar"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_elmondo1.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.elmundo.es/elmundo/2012/10/28/espana/1351388909.html",
3 | "target_language": "es",
4 | "expected": {
5 | "meta_description": "Detenida en Francia Izaskun Lesaka Izaskun Lesaka pas\u00f3 a la c\u00fapula tras la detenci\u00f3n de Ata. Su pareja y lugarteniente, Joseba Iturbe, tambi\u00e9n ha sido detenido.",
6 | "domain": "www.elmundo.es",
7 | "final_url": "http://www.elmundo.es/elmundo/2012/10/28/espana/1351388909.html",
8 | "meta_keywords": "Detenida, Francia, Izaskun, Lesaka, Espa\u00f1a",
9 | "cleaned_text": "Importante golpe a la banda terrorista ETA en Francia.",
10 | "meta_favicon": "",
11 | "meta_lang": null
12 | }
13 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_engadget.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.engadget.com/2010/08/18/verizon-fios-set-top-boxes-getting-a-new-hd-guide-external-stor/",
3 | "expected": {
4 | "meta_description": "Streaming and downloading TV content to mobiles is nice, but we enjoy watching TV... on the TV, and Verizon had plenty of that to talk",
5 | "domain": "www.engadget.com",
6 | "final_url": "http://www.engadget.com/2010/08/18/verizon-fios-set-top-boxes-getting-a-new-hd-guide-external-stor/",
7 | "meta_keywords": "",
8 | "cleaned_text": "Streaming and downloading TV content to mobiles is nice",
9 | "tags": [
10 | "img 1.9",
11 | "external storage",
12 | "chaptering",
13 | "verizon",
14 | "esata",
15 | "Motorola",
16 | "multiroom",
17 | "gui",
18 | "Set-topBox",
19 | "set-top box",
20 | "1.9",
21 | "fios",
22 | "Android coverage by humans",
23 | "Img1.9",
24 | "moca",
25 | "fios tv",
26 | "ExternalStorage",
27 | "FiosTv",
28 | "FiOS TV",
29 | "dvr"
30 | ],
31 | "meta_favicon": "http://www.blogsmithmedia.com/www.engadget.com/media/favicon.ico",
32 | "meta_lang": null
33 | }
34 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_espn.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://sports.espn.go.com/espn/commentary/news/story?id=5461430",
3 | "expected": {
4 | "meta_description": "Are Florida coach Urban Meyer and Alabama coach Nick Saban closing practice because of agents or because they like to control every aspect of their programs?",
5 | "domain": "sports.espn.go.com",
6 | "final_url": "http://sports.espn.go.com/espn/commentary/news/story?id=5461430",
7 | "meta_keywords": "",
8 | "cleaned_text": "If you believe what college football coaches have said about sports",
9 | "meta_favicon": "",
10 | "meta_lang": null
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_foxNews.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.foxnews.com/politics/2010/08/14/russias-nuclear-help-iran-stirs-questions-improved-relations/",
3 | "expected": {
4 | "meta_description": "Russia's announcement that it will help Iran get nuclear fuel is raising questions about the better-than- ever relationship between Russia and the U.S. , according to President Obama, after the two former Cold War adversaries recently signed a nuclear reduction treaty.",
5 | "domain": "www.foxnews.com",
6 | "final_url": "http://www.foxnews.com/politics/2010/08/14/russias-nuclear-help-iran-stirs-questions-improved-relations/",
7 | "meta_keywords": "",
8 | "cleaned_text": "Russia's announcement that it will help Iran get nuclear fuel is raising questions",
9 | "meta_favicon": "",
10 | "meta_lang": "en"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_get_canonical_url.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.marketplace.org/shows/marketplace-tech-report/marketplace-tech-friday-april-19-2013",
3 | "expected": {
4 | "meta_description": "Gun control advocates are looking for new options, including some tech strategies. On Wednesday, seven measures failed in the U.S. Senate, including an amendment that would have expanded background checks. Some gun control advocates are now looking in new directions. So-called 'smart guns' are firearms that only authorized users can fire. But so far, there's not a single one on the market in the U.S.",
5 | "domain": "www.marketplace.org",
6 | "final_url": "http://www.marketplace.org/shows/marketplace-tech-report/marketplace-tech-friday-april-19-2013",
7 | "meta_keywords": "",
8 | "cleaned_text": "Gun control advocates are looking for new options, including some tech strategies. On Wednesday",
9 | "tags": [
10 | "SOPA",
11 | "PIPA",
12 | "online privacy",
13 | "Tech",
14 | "sensors",
15 | "guns",
16 | "CISPA"
17 | ],
18 | "canonical_link": "http://www.marketplace.org/shows/marketplace-tech-report/marketplace-tech-friday-april-19-2013",
19 | "meta_favicon": "http://www.marketplace.org/sites/default/themes/sitetheme/favicon.ico",
20 | "meta_lang": null
21 | }
22 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_huffingtonPost2.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.huffingtonpost.com/2011/10/06/alabama-workers-immigration-law_n_997793.html",
3 | "expected": {
4 | "meta_description": "MONTGOMERY, Ala. -- Alabama's strict new immigration law may be backfiring. Intended to force illegal workers out of jobs, it is also driving away many construction workers, roofers and field hands in the country legally who do backbreaking jobs that Americans generally won't.",
5 | "domain": "www.huffingtonpost.com",
6 | "final_url": "http://www.huffingtonpost.com/2011/10/06/alabama-workers-immigration-law_n_997793.html",
7 | "meta_keywords": "alabama, workers, leave, state, as, immigration, law, takes, effect, business",
8 | "cleaned_text": "MONTGOMERY, Ala. -- Alabama's strict new immigration law may be backfiring.",
9 | "meta_favicon": "/favicon.ico",
10 | "meta_lang": "en"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_issue115.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://blogs.wsj.com/accelerators/2014/06/03/jessica-livingston-why-startups-need-to-focus-on-sales-not-marketing/",
3 | "expected": {
4 | "cleaned_text": "JESSICA LIVINGSTON: The most important thing an early-stage startup should know about marketing is rather counterintuitive: that you probably shouldn’t be doing anything you’d use the term"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_issue129.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://lostinjit.blogspot.fr/2011/10/pypy-and-road-towards-scipy.html",
3 | "expected": {
4 | "cleaned_text": "Recent PyPys effort to bring NumPy and the associated fundraiser"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_issue25.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.accountancyage.com/aa/analysis/2111729/institutes-ifrs-bang",
3 | "expected": {
4 | "meta_description": "UK institutes are all for rapid IFRS adoption in the US\n, Institutes,Accounting standards, ACCA,ICAEW,IFRS",
5 | "domain": "www.accountancyage.com",
6 | "final_url": "http://www.accountancyage.com/aa/analysis/2111729/institutes-ifrs-bang",
7 | "meta_keywords": "",
8 | "cleaned_text": "UK INSTITUTES have thrown their weight behind rapid adoption of international financial reporting standards in the US.",
9 | "tags": [
10 | "Legal Privilege",
11 | "Investigations",
12 | "ICAEW",
13 | "ACCA",
14 | "Audit Reform Special.",
15 | "Vantis",
16 | "Celebrities",
17 | "Football Finance",
18 | "Tax Amnesty",
19 | "Convergence",
20 | "IFRS"
21 | ],
22 | "meta_favicon": "http://www.accountancyage.com/images/AccountancyAge.png",
23 | "meta_lang": "en"
24 | }
25 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_issue28.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.telegraph.co.uk/foodanddrink/foodanddrinknews/8808120/Worlds-hottest-chilli-contest-leaves-two-in-hospital.html",
3 | "expected": {
4 | "meta_description": "A 'world's hottest chilli' competition at a curry restaurant left two people\n in hospital.",
5 | "domain": "www.telegraph.co.uk",
6 | "final_url": "http://www.telegraph.co.uk/foodanddrink/foodanddrinknews/8808120/Worlds-hottest-chilli-contest-leaves-two-in-hospital.html",
7 | "meta_keywords": "Curry-competition, Food and Drink News,Food and Drink",
8 | "cleaned_text": "Emergency services were called to Kismot Restaurant's curry-eating challenge,",
9 | "meta_favicon": "",
10 | "meta_lang": "en"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_issue32.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.tulsaworld.com/site/articlepath.aspx?articleid=20111118_61_A16_Opposi344152&rss_lnk=7",
3 | "expected": {
4 | "meta_description": "",
5 | "domain": "www.tulsaworld.com",
6 | "final_url": "http://www.tulsaworld.com/site/articlepath.aspx?articleid=20111118_61_A16_Opposi344152&rss_lnk=7",
7 | "meta_keywords": "COURT RULE INFORMATION RECORDS DISTRICT OKLAHOMA PERSONAL PROPOSAL PROPOSED REASONS",
8 | "cleaned_text": "Opposition to a proposal to remove certain personal data",
9 | "meta_favicon": "/favicon.ico",
10 | "meta_lang": null
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_issue4.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.slate.fr/story/64063/tapie-mougeotte-la-provence",
3 | "target_language": "fr",
4 | "expected": {
5 | "meta_description": "L'ex-pr\u00e9sident de l'OM et l'ancien PDG de TF1 s'int\u00e9resseraient au rachat du quotidien r\u00e9gional. Nous vous proposons, comme au lyc\u00e9e, un exercice pour en d\u00e9gager la signification.",
6 | "domain": "www.slate.fr",
7 | "final_url": "http://www.slate.fr/story/64063/tapie-mougeotte-la-provence",
8 | "meta_keywords": "FRANCE,Bernard Tapie,Etienne Mougeotte,presse,Qatar,Cr\u00e9dit Lyonnaus,La Provence,aides de l'Etat,politique,marseille,m\u00e9dias fran\u00e7ais,",
9 | "cleaned_text": "Exercice: apr\u00e8s avoir attentivement lu cette br\u00e8ve parue dans L'Express, vous expliquerez en quoi elle r\u00e9sume une certaine id\u00e9e de la France.\n\n\u00abBernar",
10 | "meta_favicon": "",
11 | "meta_lang": "fr"
12 | }
13 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_lefigaro.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.lefigaro.fr/conjoncture/2013/04/05/20002-20130405ARTFIG00473-montebourg-envisage-des-privatisations-partielles.php",
3 | "target_language": "fr",
4 | "expected": {
5 | "meta_description": "Selon le ministre du Redressement productif interview\u00e9 par le Wall Street Journal, le gouvernement r\u00e9fl\u00e9chit \u00e0 des changements dans les participations d\u00e9tenues par l'\u00c9tat.",
6 | "domain": "www.lefigaro.fr",
7 | "final_url": "http://www.lefigaro.fr/conjoncture/2013/04/05/20002-20130405ARTFIG00473-montebourg-envisage-des-privatisations-partielles.php",
8 | "meta_keywords": "Actualit\u00e9 \u00e9conomique, entreprises, \u00e9conomie, bourse, emploi, imp\u00f4ts, cac 40, creation d'entreprise, chef d'entreprise, grands patrons, consommation, multinationales, privatisation, d\u00e9localisations, concurrence, monopole, crise, bourse, licenciements, union europ\u00e9enne, etats-unis, chine, pmi, pme, tpe, salaires, relance, pib, pnb, aides sociales, japon, r\u00e9cession, \u00e9conomie verte, fmi, reprise, croissance, news, actu",
9 | "cleaned_text": "«Dans le cadre de l'effort de restructuration budgétaire",
10 | "tags": [
11 | "EDF",
12 | "Privatisation",
13 | "Arnaud Montebourg",
14 | "Pierre Moscovici",
15 | "Participations de l'Etat",
16 | "Entreprises publiques",
17 | "AREVA"
18 | ],
19 | "meta_favicon": "http://www.lefigaro.fr/icones/favicon.ico",
20 | "meta_lang": null
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_liberation.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.liberation.fr/politiques/2012/10/27/ayrault-assume-et-revendique-sa-methode_856451",
3 | "expected": {
4 | "meta_description": "Apr\u00e8s une semaine agit\u00e9e, le Premier ministre s'est offert un succ\u00e8s d'estrade \u00e0 bon compte lors du congr\u00e8s du Parti socialiste \u00e0 Toulouse.",
5 | "domain": "www.liberation.fr",
6 | "final_url": "http://www.liberation.fr/politiques/2012/10/27/ayrault-assume-et-revendique-sa-methode_856451",
7 | "meta_keywords": "actualit\u00e9s, news",
8 | "cleaned_text": "A Toulouse, Jean-Marc Ayrault aura fait deux rappels sur",
9 | "meta_favicon": "",
10 | "meta_lang": "fr"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_marketplace.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.marketplace.org/shows/marketplace-tech-report/marketplace-tech-friday-april-19-2013",
3 | "expected": {
4 | "meta_description": "Gun control advocates are looking for new options, including some tech strategies. On Wednesday, seven measures failed in the U.S. Senate, including an amendment that would have expanded background checks. Some gun control advocates are now looking in new directions. So-called 'smart guns' are firearms that only authorized users can fire. But so far, there's not a single one on the market in the U.S.",
5 | "domain": "www.marketplace.org",
6 | "final_url": "http://www.marketplace.org/shows/marketplace-tech-report/marketplace-tech-friday-april-19-2013",
7 | "meta_keywords": "",
8 | "cleaned_text": "Gun control advocates are looking for new options, including some tech strategies. On Wednesday",
9 | "tags": [
10 | "SOPA",
11 | "PIPA",
12 | "online privacy",
13 | "Tech",
14 | "sensors",
15 | "guns",
16 | "CISPA"
17 | ],
18 | "meta_favicon": "http://www.marketplace.org/sites/default/themes/sitetheme/favicon.ico",
19 | "meta_lang": null
20 | }
21 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_mashable_issue_74.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://mashable.com/2014/01/26/square-cofounder-jim-mckelvey/",
3 | "expected": {
4 | "cleaned_text": "Some 2,000 miles away from Square's massive new headquarters in San Francisco, Jim McKelvey is standing in work boots and a thick dock coat trying to revive a city.\n\nMcKelvey founded the mobile payments company in 2009 with Jack Dorsey, who had previously helped launch Twitter."
5 | }
6 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_msn1.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://lifestyle.msn.com/your-life/your-money-today/article.aspx?cp-documentid=31244150",
3 | "expected": {
4 | "meta_description": "An anonymous grocery-store manager shares the secrets to lowering your food bill. For more ideas on how to stop spending , check out Real Simple.",
5 | "domain": "lifestyle.msn.com",
6 | "final_url": "http://lifestyle.msn.com/your-life/your-money-today/article.aspx?cp-documentid=31244150",
7 | "meta_keywords": "groceries for less, budget, save money, penny pinching, groceries, food bill",
8 | "cleaned_text": "\"Head to the supermarket an hour before closing time. Some stores mark down prepared foods and bakery items then because they can't sell them the following day. You could get a rotisserie chicken or freshly baked cookies for 50 percent off, or nab two sushi meals for the price of one. If you're planning to host a party or some other gathering, it's worth your time to ask the deli or bakery manager for a 5 to 10 percent discount off your catering order. Also, keep an eye out for online coupons: Some grocery stores accept coupons printed out from sites like TheGroceryGame.com, ShopAtHome.com, and CouponMom.com, even though they rarely publicize the fact. (Find out your store's policy at the customer-service counter.) It also pays to check the market's own website. You could find weekly deals there that it doesn't advertise anywhere else, including its in-store flyers.\n\n\"And even though it's convenient to do all your shopping in one place, avoid going to a grocery store for kitchen supplies, like measuring cups and cookie sheets, or seasonal items, like holiday decorations and gift bags. These products will have inflated prices. Buy them at a big-box chain, like Target or Walmart, instead.\"\n\nMore from Bing and MSN Lifestyle Site Search: Get additional content on saving on your grocery bill",
9 | "meta_favicon": "http://blu.stc.s-msn.com/br/gbl/lg/1/favicon.ico",
10 | "meta_lang": "en"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_okaymarketing.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.businessinsider.com/larry-page-the-untold-story-2014-4",
3 | "expected": {
4 | "cleaned_text": "If you are operating a local business there is something you can do right now to gain an advantage over your competition."
5 | }
6 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_politico.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.politico.com/news/stories/1010/43352.html",
3 | "expected": {
4 | "meta_description": "Demographic changes are likely to alter the route Obama took to victory in 2008.",
5 | "domain": "www.politico.com",
6 | "final_url": "http://www.politico.com/news/stories/1010/43352.html",
7 | "meta_keywords": "2012, Maggie Haberman and Shira Toeplitz",
8 | "cleaned_text": "If the newest Census Bureau estimates stay close to form",
9 | "meta_favicon": "http://www.politico.com/favicon.ico",
10 | "meta_lang": "en"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_techcrunch1.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://techcrunch.com/2011/08/13/2005-zuckerberg-didnt-want-to-take-over-the-world/",
3 | "expected": {
4 | "meta_description": "",
5 | "domain": "techcrunch.com",
6 | "final_url": "http://techcrunch.com/2011/08/13/2005-zuckerberg-didnt-want-to-take-over-the-world/",
7 | "meta_keywords": "",
8 | "cleaned_text": "The Huffington Post has come across this fascinating five-minute interview",
9 | "tags": [
10 | "facebook"
11 | ],
12 | "title": "2005 Zuckerberg Didn\u2019t Want To Take Over The World",
13 | "meta_favicon": "http://s2.wp.com/wp-content/themes/vip/tctechcrunch2/images/favicon.ico?m=1310283187g",
14 | "meta_lang": "en"
15 | }
16 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_testHuffingtonPost.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.huffingtonpost.com/2010/08/13/federal-reserve-pursuing_n_681540.html",
3 | "expected": {
4 | "meta_description": "A top regional Federal Reserve official sharply criticized Friday the Fed's ongoing policy of keeping interest rates near zero -- and at record lows -- as a \"dangerous gamble.\"",
5 | "domain": "www.huffingtonpost.com",
6 | "final_url": "http://www.huffingtonpost.com/2010/08/13/federal-reserve-pursuing_n_681540.html",
7 | "meta_keywords": "federal, reserve's, low, rate, policy, is, a, 'dangerous, gamble,', says, top, central, bank, official, business",
8 | "cleaned_text": "A top regional Federal Reserve official sharply criticized Friday",
9 | "tags": [
10 | "Financial Crisis",
11 | "Financial Reform",
12 | "Federal Reserve",
13 | "Great Recession",
14 | "Fomc",
15 | "Thomas Hoenig",
16 | "Federal Open Market Committee",
17 | "Monetary Policy",
18 | "Kansas City Fed",
19 | "Financial Regulatory Reform",
20 | "The Financial Fix",
21 | "Wall Street Reform",
22 | "Too Big To Fail",
23 | "Federal Reserve Bank Of Kansas City",
24 | "Interest Rates",
25 | "Financial Regulation"
26 | ],
27 | "description": "A top regional Federal Reserve official sharply criticized Friday the Fed's ongoing policy of keeping interest rates near zero -- and at record lows -- as a \"dangerous gamble.\"",
28 | "title": "Federal Reserve's Low Rate Policy Is A 'Dangerous Gamble,' Says Top Central Bank Official",
29 | "meta_favicon": "/favicon.ico",
30 | "meta_lang": "en"
31 | }
32 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_time.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.time.com/time/health/article/0,8599,2011497,00.html",
3 | "expected": {
4 | "meta_description": "Researchers at the University of Georgia believe that much of the oil from the BP spill is still present underwater in the Gulf of Mexico, where its impact on aquatic life is far from clear",
5 | "domain": "www.time.com",
6 | "final_url": "http://www.time.com/time/health/article/0,8599,2011497,00.html",
7 | "meta_keywords": "bp, oil, spill, gulf, mexico, invisible, dispersed, deepwater horizon, Charles Hopkinson",
8 | "cleaned_text": "This month, the federal government released",
9 | "title": "Oil from Spill Could Still Pose Major Threat",
10 | "meta_favicon": "http://img.timeinc.net/time/favicon.ico",
11 | "meta_lang": null
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_time2.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://newsfeed.time.com/2011/08/24/washington-monument-closes-to-repair-earthquake-induced-crack/",
3 | "expected": {
4 | "meta_description": "Despite what the jeers of jaded Californians might suggest, toppled lawn chairs weren't actually the worst of the damage from Tuesday's earthquake that rattled the East Coast. The Washington Monument developed a crack near its peak from the magnitude-5.",
5 | "domain": "newsfeed.time.com",
6 | "final_url": "http://newsfeed.time.com/2011/08/24/washington-monument-closes-to-repair-earthquake-induced-crack/",
7 | "meta_keywords": "nation, u.s., crack, damage, earthquake, nation, obelisk, virginia earthquake, washington dc, washington monument",
8 | "cleaned_text": "Despite what the jeers of jaded Californians might suggest",
9 | "tags": [
10 | "obelisk",
11 | "virginia earthquake",
12 | "damage",
13 | "nation",
14 | "washington monument",
15 | "Crack",
16 | "washington dc",
17 | "earthquake"
18 | ],
19 | "meta_favicon": "http://1.gravatar.com/blavatar/de038c9fc06774c15706fda5010eb7cb?s=16",
20 | "meta_lang": null
21 | }
22 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_usatoday_issue_74.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.usatoday.com/story/tech/columnist/talkingtech/2014/01/25/namm-2014---ik-multimedias-rings-to-make-music/4863193/",
3 | "expected": {
4 | "cleaned_text": "ANAHEIM, Calif. — Musicians often show off lots of ring bling —but rarely have rings been thought of for making music — until now."
5 | }
6 | }
--------------------------------------------------------------------------------
/test_data/python-goose/content/test_yahoo.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://news.yahoo.com/apple-says-steve-jobs-resigning-ceo-224628633.html",
3 | "expected": {
4 | "meta_description": "Read 'Apple says Steve Jobs resigning as CEO' on Yahoo! News. Steve Jobs, the mind behind the iPhone, iPad and other devices that turned Apple Inc. into one of the world's most powerful companies, resigned as CEO on Wednesday, saying he can no longer handle the job but will continue to play a leadership role.",
5 | "domain": "news.yahoo.com",
6 | "final_url": "http://news.yahoo.com/apple-says-steve-jobs-resigning-ceo-224628633.html",
7 | "meta_keywords": "",
8 | "cleaned_text": "SAN FRANCISCO (AP) \u2014 Steve Jobs, the mind behind the iPhone",
9 | "meta_favicon": "",
10 | "meta_lang": "en"
11 | }
12 | }
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_basic_image/test_basic_image.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://blogs.kusp.org/filmgang/2013/02/08/stand-up-guys/",
3 | "expected": {
4 | "top_image": {
5 | "extraction_type": "bigimage",
6 | "src": "http://md0.libe.com/photo/465395/?modified_at=1351411813&ratio_x=03&ratio_y=02&width=476",
7 | "confidence_score": 100,
8 | "bytes": 0,
9 | "height": 317,
10 | "width": 476,
11 | "top_image_node": null
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_class/test_known_image_css_class.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
title
16 |
17 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
18 |
19 |
20 | Most of our team is using Eclipse as the main IDE, its incrimental compilation in Java with its tight JUnit integration are great for fast TDD programming. Unfortunately the Eclipse Scala plugin is not there yet, it may hangs the IDE and messes up Java compilation - especially in large (more then 1000 source files) Java/Scala projects. Though the plugin is getting better over time some developers would find the plugin as a majore drag on their productivity.
21 | For developers who do not write Scala at all or rather edit Scala with other editors, you can use this alternate path which lets them work on their Java or Scala code without messing with the plugin.
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_class/test_known_image_css_class.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://go.com/bla/bla",
3 | "expected": {
4 | "top_image": {
5 | "extraction_type": "known",
6 | "src": "http://md0.libe.com/photo/465395/?modified_at=1351411813&ratio_x=03&ratio_y=02&width=476",
7 | "confidence_score": 90,
8 | "bytes": 0,
9 | "height": 317,
10 | "width": 476,
11 | "top_image_node": null
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_id/test_known_image_css_id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
title
16 |
17 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
18 |
19 |
20 | Most of our team is using Eclipse as the main IDE, its incrimental compilation in Java with its tight JUnit integration are great for fast TDD programming. Unfortunately the Eclipse Scala plugin is not there yet, it may hangs the IDE and messes up Java compilation - especially in large (more then 1000 source files) Java/Scala projects. Though the plugin is getting better over time some developers would find the plugin as a majore drag on their productivity.
21 | For developers who do not write Scala at all or rather edit Scala with other editors, you can use this alternate path which lets them work on their Java or Scala code without messing with the plugin.
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_id/test_known_image_css_id.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://go.com/bla/bla",
3 | "expected": {
4 | "top_image": {
5 | "extraction_type": "known",
6 | "src": "http://md0.libe.com/photo/465395/?modified_at=1351411813&ratio_x=03&ratio_y=02&width=476",
7 | "confidence_score": 90,
8 | "bytes": 0,
9 | "height": 317,
10 | "width": 476,
11 | "top_image_node": null
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_parent_class/test_known_image_css_parent_class.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 |
title
16 |
17 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
18 |
19 |
20 | Most of our team is using Eclipse as the main IDE, its incrimental compilation in Java with its tight JUnit integration are great for fast TDD programming. Unfortunately the Eclipse Scala plugin is not there yet, it may hangs the IDE and messes up Java compilation - especially in large (more then 1000 source files) Java/Scala projects. Though the plugin is getting better over time some developers would find the plugin as a majore drag on their productivity.
21 | For developers who do not write Scala at all or rather edit Scala with other editors, you can use this alternate path which lets them work on their Java or Scala code without messing with the plugin.
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_parent_class/test_known_image_css_parent_class.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://go.com/bla/bla",
3 | "expected": {
4 | "top_image": {
5 | "extraction_type": "known",
6 | "src": "http://md0.libe.com/photo/465395/?modified_at=1351411813&ratio_x=03&ratio_y=02&width=476",
7 | "confidence_score": 90,
8 | "bytes": 0,
9 | "height": 317,
10 | "width": 476,
11 | "top_image_node": null
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_parent_id/test_known_image_css_parent_id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 |
title
16 |
17 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
18 |
19 |
20 | Most of our team is using Eclipse as the main IDE, its incrimental compilation in Java with its tight JUnit integration are great for fast TDD programming. Unfortunately the Eclipse Scala plugin is not there yet, it may hangs the IDE and messes up Java compilation - especially in large (more then 1000 source files) Java/Scala projects. Though the plugin is getting better over time some developers would find the plugin as a majore drag on their productivity.
21 | For developers who do not write Scala at all or rather edit Scala with other editors, you can use this alternate path which lets them work on their Java or Scala code without messing with the plugin.
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_css_parent_id/test_known_image_css_parent_id.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://go.com/bla/bla",
3 | "expected": {
4 | "top_image": {
5 | "extraction_type": "known",
6 | "src": "http://md0.libe.com/photo/465395/?modified_at=1351411813&ratio_x=03&ratio_y=02&width=476",
7 | "confidence_score": 90,
8 | "bytes": 0,
9 | "height": 317,
10 | "width": 476,
11 | "top_image_node": null
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_empty_src/test_known_image_empty_src.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
title
16 |
17 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
18 |
19 |
20 | Most of our team is using Eclipse as the main IDE, its incrimental compilation in Java with its tight JUnit integration are great for fast TDD programming. Unfortunately the Eclipse Scala plugin is not there yet, it may hangs the IDE and messes up Java compilation - especially in large (more then 1000 source files) Java/Scala projects. Though the plugin is getting better over time some developers would find the plugin as a majore drag on their productivity.
21 | For developers who do not write Scala at all or rather edit Scala with other editors, you can use this alternate path which lets them work on their Java or Scala code without messing with the plugin.
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_empty_src/test_known_image_empty_src.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://go.com/bla/bla",
3 | "expected": {
4 | "cleaned_text" : "TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start u",
5 | "top_image": {
6 | "extraction_type": "NA",
7 | "src": "",
8 | "confidence_score": 0,
9 | "bytes": 0,
10 | "height": 0,
11 | "width": 0,
12 | "top_image_node": null
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_name_parent/test_known_image_name_parent.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
title
13 |
14 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
15 |
16 |
17 | Most of our team is using Eclipse as the main IDE, its incrimental compilation in Java with its tight JUnit integration are great for fast TDD programming. Unfortunately the Eclipse Scala plugin is not there yet, it may hangs the IDE and messes up Java compilation - especially in large (more then 1000 source files) Java/Scala projects. Though the plugin is getting better over time some developers would find the plugin as a majore drag on their productivity.
18 | For developers who do not write Scala at all or rather edit Scala with other editors, you can use this alternate path which lets them work on their Java or Scala code without messing with the plugin.
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_known_image_name_parent/test_known_image_name_parent.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://go.com/bla/bla",
3 | "expected": {
4 | "top_image": {
5 | "extraction_type": "known",
6 | "src": "http://md0.libe.com/photo/465395/?modified_at=1351411813&ratio_x=03&ratio_y=02&width=476",
7 | "confidence_score": 90,
8 | "bytes": 0,
9 | "height": 317,
10 | "width": 476,
11 | "top_image_node": null
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_opengraph_tag/test_opengraph_tag.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
title
11 |
12 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
13 |
14 |
15 | Most of our team is using Eclipse as the main IDE, its incrimental compilation in Java with its tight JUnit integration are great for fast TDD programming. Unfortunately the Eclipse Scala plugin is not there yet, it may hangs the IDE and messes up Java compilation - especially in large (more then 1000 source files) Java/Scala projects. Though the plugin is getting better over time some developers would find the plugin as a majore drag on their productivity.
16 | For developers who do not write Scala at all or rather edit Scala with other editors, you can use this alternate path which lets them work on their Java or Scala code without messing with the plugin.
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/test_data/python-goose/images/test_opengraph_tag/test_opengraph_tag.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://go.com/bla/bla",
3 | "expected": {
4 | "top_image": {
5 | "extraction_type": "known",
6 | "src": "http://md0.libe.com/photo/465395/?modified_at=1351411813&ratio_x=03&ratio_y=02&width=476",
7 | "confidence_score": 90,
8 | "bytes": 0,
9 | "height": 317,
10 | "width": 476,
11 | "top_image_node": null
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/links/test_links.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection.
6 | links
7 | Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
8 |
9 |
10 |
11 |
12 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/test_data/python-goose/links/test_links.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/links/",
3 | "expected": {
4 | "links": 2
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/opengraph/test_opengraph.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/test_data/python-goose/opengraph/test_opengraph.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/test_opengraphcontent",
3 | "expected": {
4 | "opengraph": {
5 | "url": "http://www.somenews.com/2012/09/19/nyregion/some-news-article.html?pagewanted=all",
6 | "image": "http://graphics8.somenews.com/images/2012/09/19/region/some-news-image.jpg",
7 | "type": "article",
8 | "description": "Some News Happened in New York",
9 | "title": "Some News Article Story"
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://example.com/example",
3 | "expected": {
4 | "publish_date": "2014-06-30T16:54:02+00:00"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date_article.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date_article.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://example.com/example",
3 | "expected": {
4 | "publish_date": "2012-01-11T15:55:01+00:00"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date_rnews.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date_rnews.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://example.com/example",
3 | "expected": {
4 | "publish_date": "2010-02-22T11:53:04+00:00"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date_schema.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test video
5 |
6 |
7 |
8 |
9 |
9 octobre 2014 à 12:06
10 |
11 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/test_data/python-goose/publishdate/test_publish_date_schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://example.com/example",
3 | "expected": {
4 | "publish_date": "2014-10-09T12:06:16"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/tags/test_tags_abcau.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.abc.net.au/news/2013-04-22/swimming-greats-say-cuts-a-shame/4644544",
3 | "expected": {
4 | "tags": [
5 | "olympics-summer",
6 | "australia",
7 | "swimming"
8 | ]
9 | }
10 | }
--------------------------------------------------------------------------------
/test_data/python-goose/tags/test_tags_cnet.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.cnet.com/8301-13952_1-57596170-81/the-404-1310-where-its-love-at-first-swipe-podcast/",
3 | "expected": {
4 | "tags": [
5 | "purgatory",
6 | "USDATE",
7 | "Pope",
8 | "online dating",
9 | "leftovers",
10 | "app",
11 | "Yahoo",
12 | "OKCupid",
13 | "romance",
14 | "Pontifex",
15 | "Tinder",
16 | "Leftover Swap",
17 | "Match.com",
18 | "Twitter",
19 | "Marc Maron"
20 | ]
21 | }
22 | }
--------------------------------------------------------------------------------
/test_data/python-goose/tags/test_tags_deadline.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.deadline.com/2013/06/deadline-big-media-with-david-lieberman-episode-38/",
3 | "expected": {
4 | "tags": [
5 | "Deadline Big Media",
6 | "TiVo",
7 | "Amazon Prime",
8 | "Steve Ballmer"
9 | ]
10 | }
11 | }
--------------------------------------------------------------------------------
/test_data/python-goose/tags/test_tags_kexp.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://blogs.kusp.org/filmgang/2013/02/08/stand-up-guys/",
3 | "expected": {
4 | "tags": [
5 | "kusp film review",
6 | "Stand Up Guys",
7 | "film",
8 | "Dennis Morton"
9 | ]
10 | }
11 | }
--------------------------------------------------------------------------------
/test_data/python-goose/tags/test_tags_wnyc.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://www.wnyc.org/shows/heresthething/2013/may/27/",
3 | "expected": {
4 | "tags": [
5 | "Life",
6 | "alec baldwin",
7 | "other desert cities",
8 | "News",
9 | "Music",
10 | "stacy keach"
11 | ]
12 | }
13 | }
--------------------------------------------------------------------------------
/test_data/python-goose/title/test_title_opengraph.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Wrong article title - website
6 |
7 |
8 |
9 |
10 | TextNode 1 - The Scala supported IDE is one of the few pain points of developers who want to start using Scala in their Java project. On existing long term project developed by a team its hard to step in and introduce a new language that is not supported by the existing IDE. On way to go about it is to hid the fact that you use Scala from the Java world by using one way dependency injection. Still, if you wish to truly absorb Scala into your existing java environment then you'll soon introduced cross language dependencies.
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/test_data/python-goose/title/test_title_opengraph.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/test_opengraphcontent",
3 | "expected": {
4 | "title": "Good article title"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/tweets/test_tweet.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://exemple.com/tweet/",
3 | "expected": {
4 | "tweets": 2
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test_data/python-goose/videos/test_embed.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://foo.bar/index.html",
3 | "expected": {
4 | "movies": [
5 | {
6 | "src": "https://www.youtube.com/v/M7lc1UVf-VE?version=3&autoplay=1",
7 | "embed_code": "",
8 | "height": "390",
9 | "width": "640",
10 | "provider": "youtube",
11 | "embed_type": "embed"
12 | },
13 | {
14 | "src": "https://www.youtube.com/v/M7lc1UVf-VE?version=3&autoplay=1",
15 | "embed_code": "",
16 | "height": "390",
17 | "width": "640",
18 | "provider": "youtube",
19 | "embed_type": "embed"
20 | }
21 | ]
22 | }
23 | }
--------------------------------------------------------------------------------
/test_data/python-goose/videos/test_iframe.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://foo.bar/index.html",
3 | "expected": {
4 | "movies": [
5 | {
6 | "src": "http://www.dailymotion.com/embed/video/x130bpf",
7 | "embed_code": "