#!/usr/bin/python3
import sys
import json
import os
import argparse


def usage():
    pformat = "%-7s%-7s%-10s%-10s%-10s%-10s%-10s"
    sformat = "%-23s%-18s%-16s%-14s%-14s%-12s%-12s"
    print(pformat %  ('must', 'must', 'optional', 'optional', 'optional', 'optional', 'optional'))
    print(pformat %  ('title', 'body', 'sound', 'icon', 'group', 'badge', 'isArchive'))
    print(pformat %  ('-', '-', '2.0-alarm', '-', 'default', '-', '1'))
    print(pformat %  ('-', '-', '1.4-bell', '-', 'docker', '-', '1'))
    print(pformat %  ('-', '-', '1.6-bloom', '-', 'frp', '-', '1'))
    print("\nThe 'sound' parameter also accepts the following as its value:")
    print(sformat % ("1.8-healthnotification", "2.6-typewriters", "2.9-newsflash", "1.5-mailsent", "1.5-tiptoes", "4.5-update", "2.9-spell"))
    print(sformat % ("2.2-multiwayinvitation", "4.5-anticipate", "1.2-telegraph", "0.9-calypso", "1.5-newmail", "1.7-glass", "2.2-choo"))
    print(sformat % ("1.4-paymentsuccess", "1.5-electronic", "0.7-birdsong", "1.9-descent", "1.3-ladder", "4.5-chime", "1.5-horn"))
    print(sformat % ("4.7-sherwoodforest", "3.0-gotosleep", "4.2-suspense", "1.5-fanfare", "7.0-minuet", "0.6-shake", "1.9-noir"))
    print()


def getParams(
    title='test',
    body='hello...',
    sound='',
    icon='',
    group='default',
    badge='1',
    isarchive=1,
              ):

    params_dict = {'title': title, 'body': body, 'sound': sound, 'icon': icon, 'group': group, 'badge': '1', 'isarchive': '1'}
    params_json = json.dumps(params_dict)
    with open('/opt/scripts/alert/bark/option.json', 'w') as obj_option:
        obj_option.write(params_json)

    os.system('/usr/bin/bash /opt/scripts/alert/bark/ciphertxt.sh')


def main():
    if len(sys.argv) < 5:
        usage()
    parser = argparse.ArgumentParser(description='Prepare arguements for bark')
    parser.add_argument('--title', help='标题，必要参数', required=True)
    parser.add_argument('--body', help='主题内容，必要参数', required=True)
    parser.add_argument('--sound', help='提示音，非必要参数，有默认值', default='alarm')
    parser.add_argument('--icon', help='图标，非必要参数，有默认值', default='0')
    parser.add_argument('--group', help='群组，非必要参数，有默认值', default='default')
    parser.add_argument('--badge', help='角标，非必要参数，有默认值', default='1')
    parser.add_argument('--isarchive', help='是否自动归档，非必要参数，有默认值', default='1')
    # if len(sys.argv) == 1:
    #     print('Need at least 2 parameters, and most can have 7 parameters, exiting...')
    #     usage()
    args = parser.parse_args()
    title = args.title
    body = args.body
    sound = args.sound
    icon = 'https://www.rustle.cc/assets/img/logos/' + str(args.icon) + '.jpg'
    group = args.group
    badge = args.badge
    isarchive = args.isarchive
    getParams(title, body, sound, icon, group, badge, isarchive)


if __name__ == "__main__":
    main()


