Skip to content
  • Hans-Christoph Steiner's avatar
    update: insert donation links based on FUNDING.yml · 01835925
    Hans-Christoph Steiner authored
    GitHub has specified FUNDING.yml, a file to include in a git repo for
    pointing people to donation links.  Since F-Droid also points people
    to donation links, this parses them to fill out Donate:
    and OpenCollective:.  Specifying those in the metadata file takes
    precedence over the FUNDING.yml.  This follows the same pattern as how
    `fdroid update` includes Fastlane/Triple-T metadata.  This lets the
    git repo maintain those specific donations links themselves.
    
    https://help.github.com/en/articles/displaying-a-sponsor-button-in-your-repository#about-funding-files
    
    The test file was generated using:
    
    ```python
    import os, re, yaml
    
    found = dict()
    for root, dirs, files in os.walk('.'):
        for f in files:
            if f == 'FUNDING.yml':
                with open(os.path.join(root, f)) as fp:
                    data = yaml.safe_load(fp)
                for k, v in data.items():
                    if k not in found:
                        found[k] = set()
                    if not v:
                        continue
                    if isinstance(v, list):
                        for i in v:
                            found[k].add(i)
                    else:
                        found[k].add(v)
    
                with open('gather-funding-names.yaml', 'w') as fp:
                    output = dict()
                    for k, v in found.items():
                        output[k] = sorted(v)
                    yaml.dump(output, fp, default_flow_style=False)
    ```
    01835925