Feed date scraper for Gemini (protocol)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python3
import zachwalk

def main():
    assert zachwalk.gnd([b'']) == zachwalk.DEFAULT
    assert zachwalk.gnd([b'2021-01-31']) == zachwalk.DEFAULT
    assert zachwalk.gnd([b'=> path.gmi 2021-01-31 - my post']) == '2021-01-31'
    assert zachwalk.gnd([b'=> 2020/11/25/hello-gemini.gmi 2020-11-25 - Hello, Gemini!']) == '2020-11-25'
    assert zachwalk.gnd([b'=> gemini://drewdevault.com/2020/09/21/Gemini-TOFU.gmi 2020-09-21: TOFU recommendations for Gemini']) == '2020-09-21'
    assert zachwalk.gnd(['=> gemini://drewdevault.com/2021/02/15/Status-update-February-2021.gmi 2021-02-15: Status update, February 2021']) == '2021-02-15'
    assert zachwalk.gnd(['=>2021-01-28.gmi 2021-01-28 - RE ew0k: Your Gemini Browser and Server are Probably Doing Certificates Wrong']) == '2021-01-28'
    assert zachwalk.gnd(['=> atom.xml     Atom Feed']) == zachwalk.DEFAULT
    assert zachwalk.gnd(['=> geminitoepub.gmi     2021-02-27 Gemini to Epub']) == '2021-02-27'
    assert zachwalk.gnd(['=> m5paper.gmi	2021-01-31 M5Paper']) == '2021-01-31'
    assert zachwalk.gnd(['=> gemini://fossphones.com/03-29-22.gmi 2022-03-29 Linux Phone News - March 29, 2022']) == '2022-03-29'
    assert zachwalk.gnd(['=> pizza.gmi 1999-01-01 yum', '=> crepes.gmi 2099-01-01 cool']) == '2099-01-01'

    assert zachwalk.getdesc('=> m5paper.gmi	2021-01-31 M5Paper') == '2021-01-31 M5Paper'

if __name__ == '__main__':
    main()