{"action":"created","issue":{"url":"https://api.github.com/repos/CherryKodi/cherry-dev/issues/3","repository_url":"https://api.github.com/repos/CherryKodi/cherry-dev","labels_url":"https://api.github.com/repos/CherryKodi/cherry-dev/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/CherryKodi/cherry-dev/issues/3/comments","events_url":"https://api.github.com/repos/CherryKodi/cherry-dev/issues/3/events","html_url":"https://github.com/CherryKodi/cherry-dev/issues/3","id":335736553,"node_id":"MDU6SXNzdWUzMzU3MzY1NTM=","number":3,"title":"Dopieścić parseDOM()","user":{"login":"rysson","id":5898312,"node_id":"MDQ6VXNlcjU4OTgzMTI=","avatar_url":"https://avatars3.githubusercontent.com/u/5898312?v=4","gravatar_id":"","url":"https://api.github.com/users/rysson","html_url":"https://github.com/rysson","followers_url":"https://api.github.com/users/rysson/followers","following_url":"https://api.github.com/users/rysson/following{/other_user}","gists_url":"https://api.github.com/users/rysson/gists{/gist_id}","starred_url":"https://api.github.com/users/rysson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rysson/subscriptions","organizations_url":"https://api.github.com/users/rysson/orgs","repos_url":"https://api.github.com/users/rysson/repos","events_url":"https://api.github.com/users/rysson/events{/privacy}","received_events_url":"https://api.github.com/users/rysson/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"rysson","id":5898312,"node_id":"MDQ6VXNlcjU4OTgzMTI=","avatar_url":"https://avatars3.githubusercontent.com/u/5898312?v=4","gravatar_id":"","url":"https://api.github.com/users/rysson","html_url":"https://github.com/rysson","followers_url":"https://api.github.com/users/rysson/followers","following_url":"https://api.github.com/users/rysson/following{/other_user}","gists_url":"https://api.github.com/users/rysson/gists{/gist_id}","starred_url":"https://api.github.com/users/rysson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rysson/subscriptions","organizations_url":"https://api.github.com/users/rysson/orgs","repos_url":"https://api.github.com/users/rysson/repos","events_url":"https://api.github.com/users/rysson/events{/privacy}","received_events_url":"https://api.github.com/users/rysson/received_events","type":"User","site_admin":false},"assignees":[{"login":"rysson","id":5898312,"node_id":"MDQ6VXNlcjU4OTgzMTI=","avatar_url":"https://avatars3.githubusercontent.com/u/5898312?v=4","gravatar_id":"","url":"https://api.github.com/users/rysson","html_url":"https://github.com/rysson","followers_url":"https://api.github.com/users/rysson/followers","following_url":"https://api.github.com/users/rysson/following{/other_user}","gists_url":"https://api.github.com/users/rysson/gists{/gist_id}","starred_url":"https://api.github.com/users/rysson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rysson/subscriptions","organizations_url":"https://api.github.com/users/rysson/orgs","repos_url":"https://api.github.com/users/rysson/repos","events_url":"https://api.github.com/users/rysson/events{/privacy}","received_events_url":"https://api.github.com/users/rysson/received_events","type":"User","site_admin":false}],"milestone":null,"comments":21,"created_at":"2018-06-26T09:36:01Z","updated_at":"2018-07-24T21:37:56Z","closed_at":null,"author_association":"COLLABORATOR","body":"Funkcja `parseDOM()` jest namiastką parsera HTML. Jest to alternatywa dla:\r\n* *BeautySoap4*, który jest koszmarnie wolny;\r\n* *lxml* najszybszy, który ma też najbardziej zaawansowane wyszukiwanie po xpath, niestety jest binarny, co może powodować problemy w dystrybucji¹.\r\n\r\n`parseDOM()` jest o tyle istotna, że na niej opera się parsowanie niemal każdej strony.\r\n\r\nFunkcję znalazłem w MrKnow. W Cherry (w PWT) jest funkcja  zdecydowanie nowsza, lepiej znajdująca elementy, niemniej znacząco wolniejsza. \r\nZacząłem przerabiać ją aby dało się obłożyć czymś w rodzaju selektora CSS. Mój kod opera się na MrKnow bo parę dni temu jeszcze nie wiedziałem, że jest inna implementacja w PWT. Obecnie łączę cechu obu realizacji, czyli moja wersja niemal tak wolna ja ta z PWT i niemal tak dziurawa jak ta z MrKnow :-D\r\n\r\nGłęboki refactoring prowadzę równolegle do innych prac. \r\nAPI ma być niezmienne z dokładnością do poprawek błędów i dodatkowych funkcji.\r\n\r\n---\r\n\r\n¹) Jest nadzieja dla binarnych paczek choć ciągle jest to za dużo zachodu:\r\n* https://github.com/hbiyik/script.module.abi\r\n* https://github.com/hbiyik/script.module.lxml"},"comment":{"url":"https://api.github.com/repos/CherryKodi/cherry-dev/issues/comments/407560516","html_url":"https://github.com/CherryKodi/cherry-dev/issues/3#issuecomment-407560516","issue_url":"https://api.github.com/repos/CherryKodi/cherry-dev/issues/3","id":407560516,"node_id":"MDEyOklzc3VlQ29tbWVudDQwNzU2MDUxNg==","user":{"login":"rysson","id":5898312,"node_id":"MDQ6VXNlcjU4OTgzMTI=","avatar_url":"https://avatars3.githubusercontent.com/u/5898312?v=4","gravatar_id":"","url":"https://api.github.com/users/rysson","html_url":"https://github.com/rysson","followers_url":"https://api.github.com/users/rysson/followers","following_url":"https://api.github.com/users/rysson/following{/other_user}","gists_url":"https://api.github.com/users/rysson/gists{/gist_id}","starred_url":"https://api.github.com/users/rysson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rysson/subscriptions","organizations_url":"https://api.github.com/users/rysson/orgs","repos_url":"https://api.github.com/users/rysson/repos","events_url":"https://api.github.com/users/rysson/events{/privacy}","received_events_url":"https://api.github.com/users/rysson/received_events","type":"User","site_admin":false},"created_at":"2018-07-24T21:37:56Z","updated_at":"2018-07-24T21:37:56Z","author_association":"COLLABORATOR","body":"Rozpierduchę w parsowaniu zrobiłem, no jeszcze brakuje trochę pracy. Ale już niedługo wyląduje to w PTW.\r\nJak ktoś się nudzi to proszę potestować z jego mojego roboczego repo.\r\nNa razie tylko python3 (zostały pierdoły, ale czas się skończył 1,5h temu).\r\n\r\nPotrzeba jednej biblioteki:\r\n```bash\r\npip3 install Arpeggio\r\n```\r\nalbo\r\n```bash\r\npython3 pip install Arpeggio\r\n```\r\n\r\nPotem przejść do repo, do katalogu `ParseDOM` i tam zawołać:\r\n```bash\r\npython3 -m rysson.dom http://wizja.tv 'center a[href*=watch](href) img(src)'\r\n```\r\n\r\nMożna się pobawić. Np. zobaczyć co będzie jak się usunie `[href*=watch]` (na początku listy).\r\nPrzykłady jutro / (po)²jutrze."}}
{"actor":{"display_login":"rysson"}}