Files
mpm-url-shortener/scripts/yourls_manager.py
T

1 line
31 KiB
Python
Raw Normal View History

IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoiIiIKeW91cmxzX21hbmFnZXIucHkg4oCUIENSVUQgb3BlcmF0aW9ucyBmb3IgbXBtLnRvIFlPVVJMUyBpbnN0YW5jZQoKQXV0aGVudGljYXRpb24gc3RyYXRlZ3kKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ3JlYXRlIGFuZCByZWFkIGFsd2F5cyB1c2UgdGhlIHNpZ25hdHVyZSB0b2tlbiB2aWEgeW91cmxzLWFwaS5waHAuCgpVcGRhdGUgYW5kIGRlbGV0ZSB0cnkgdGhlIHNpZ25hdHVyZSB0b2tlbiBmaXJzdCAocmVxdWlyZXMgdGhlIG1wbS1hcGktZXh0cmFzCnBsdWdpbiB0byBiZSBhY3RpdmUpLiBJZiB0aGUgcGx1Z2luIGlzIG5vdCBpbnN0YWxsZWQsIHRoZXkgYXV0b21hdGljYWxseSBmYWxsCmJhY2sgdG8gYW4gYWRtaW4gc2Vzc2lvbiAodXNlcm5hbWUgKyBwYXNzd29yZCkgdmlhIGFkbWluLWFqYXgucGhwLgoKQ3JlZGVudGlhbHMgYXJlIHN0b3JlZCBpbiBtYWNPUyBLZXljaGFpbiB1bmRlciBzZXJ2aWNlICdtcG0udG8teW91cmxzJzoKICBhY2NvdW50ICdzaWduYXR1cmUnICDihpIgc3RhdGljIEFQSSBzaWduYXR1cmUgdG9rZW4gIChyZXF1aXJlZCkKICBhY2NvdW50ICd1c2VybmFtZScgICDihpIgWU9VUkxTIGFkbWluIHVzZXJuYW1lICAgICAgICAob3B0aW9uYWwgZmFsbGJhY2spCiAgYWNjb3VudCAncGFzc3dvcmQnICAg4oaSIFlPVVJMUyBhZG1pbiBwYXNzd29yZCAgICAgICAgKG9wdGlvbmFsIGZhbGxiYWNrKQoKVXNhZ2U6CiAgeW91cmxzX21hbmFnZXIucHkgc2V0dXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU3RvcmUgY3JlZGVudGlhbHMKICB5b3VybHNfbWFuYWdlci5weSBjaGVjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBWZXJpZnkgJiB0ZXN0CiAgeW91cmxzX21hbmFnZXIucHkgY3JlYXRlIC0tdXJsIFVSTCBbLS1rZXl3b3JkIEtdIFstLXRpdGxlIFRdCiAgeW91cmxzX21hbmFnZXIucHkgcmVhZCAgIC0ta2V5d29yZCBLCiAgeW91cmxzX21hbmFnZXIucHkgbGlzdCAgIFstLWxpbWl0IE5dIFstLWZpbHRlciB0b3B8Ym90dG9tfGxhc3R8cmFuZF0KICB5b3VybHNfbWFuYWdlci5weSB1cGRhdGUgLS1rZXl3b3JkIEsgWy0tdXJsIFVSTF0gWy0tbmV3a2V5d29yZCBLMl0gWy0tdGl0bGUgVF0KICB5b3VybHNfbWFuYWdlci5weSBkZWxldGUgLS1rZXl3b3JkIEsgWy0tZm9yY2VdCiIiIgoKaW1wb3J0IGFyZ3BhcnNlCmltcG9ydCBnZXRwYXNzCmltcG9ydCBqc29uCmltcG9ydCByZQppbXBvcnQgc3VicHJvY2VzcwppbXBvcnQgc3lzCgpCQVNFX1VSTCAgICAgICAgID0gImh0dHBzOi8vbXBtLnRvIgpBUElfVVJMICAgICAgICAgID0gZiJ7QkFTRV9VUkx9L3lvdXJscy1hcGkucGhwIgpBRE1JTl9VUkwgICAgICAgID0gZiJ7QkFTRV9VUkx9L2FkbWluIgpLRVlDSEFJTl9TRVJWSUNFID0gIm1wbS50by15b3VybHMiCgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBLZXljaGFpbiBoZWxwZXJzIChtYWNPUykKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmRlZiBrZXljaGFpbl9nZXQoYWNjb3VudDogc3RyKSAtPiBzdHIgfCBOb25lOgogICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oCiAgICAgICAgWyJzZWN1cml0eSIsICJmaW5kLWdlbmVyaWMtcGFzc3dvcmQiLAogICAgICAgICAiLWEiLCBhY2NvdW50LCAiLXMiLCBLRVlDSEFJTl9TRVJWSUNFLCAiLXciXSwKICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUKICAgICkKICAgIHJldHVybiByZXN1bHQuc3Rkb3V0LnN0cmlwKCkgaWYgcmVzdWx0LnJldHVybmNvZGUgPT0gMCBlbHNlIE5vbmUKCgpkZWYga2V5Y2hhaW5fc2V0KGFjY291bnQ6IHN0ciwgdmFsdWU6IHN0cikgLT4gTm9uZToKICAgIHN1YnByb2Nlc3MucnVuKAogICAgICAgIFsic2VjdXJpdHkiLCAiYWRkLWdlbmVyaWMtcGFzc3dvcmQiLAogICAgICAgICAiLVUiLCAiLWEiLCBhY2NvdW50LCAiLXMiLCBLRVlDSEFJTl9TRVJWSUNFLCAiLXciLCB2YWx1ZV0sCiAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgY2hlY2s9VHJ1ZQogICAgKQoKCmRlZiBrZXljaGFpbl9kZWxldGUoYWNjb3VudDogc3RyKSAtPiBOb25lOgogICAgc3VicHJvY2Vzcy5ydW4oCiAgICAgICAgWyJzZWN1cml0eSIsICJkZWxldGUtZ2VuZXJpYy1wYXNzd29yZCIsCiAgICAgICAgICItYSIsIGFjY291bnQsICItcyIsIEtFWUNIQUlOX1NFUlZJQ0VdLAogICAgICAgIGNhcHR1cmVfb3V0cHV0PVRydWUKICAgICkKCgpkZWYgZ2V0X3NpZ25hdHVyZSgpIC0+IHN0cjoKICAgIHRva2VuID0ga2V5Y2hhaW5fZ2V0KCJzaWduYXR1cmUiKQogICAgaWYgbm90IHRva2VuOgogICAgICAgIHN5cy5leGl0KAogICAgICAgICAgICAiRXJyb3I6IE5vIHNpZ25hdHVyZSB0b2tlbiBmb3VuZC5cbiIKICAgICAgICAgICAgIlJ1biBgeW91cmxzX21hbmFnZXIucHkgc2V0dXBgIHRvIHN0b3JlIHlvdXIgY3JlZGVudGlhbHMuIgogICAgICAgICkKICAgIHJldHVybiB0b2tlbgoKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgS2V5d29yZCBub3JtYWxpc2F0aW9uCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpkZWYgbm9ybWFsaXplX2tleXdvcmQocmF3OiBzdHIpIC0+IHN0cjoKICAgICIiIgogICAgQXBwbHkgbXBtLnRvJ3Mga2V5d29yZCBjaGFyc2V0IHJ1bGVzIGNsaWVudC1zaWRlIHNvIHRoZSB1c2VyIHNlZXMgdGhlCiAgICBhY3R1YWwgc2hvcnQgY29kZSBiZWZvcmUgdGhlIHJlcXVlc3QgaXMgc2VudC4KCiAgICBtcG0udG8gaXMgY29uZmlndXJlZCB3aXRoIGEgbG93ZXJjYXNlIGFscGhhbnVtZXJpYyBjaGFyc2V0LCBzbyB1cHBlcmNhc2UKICAgIGxldHRlcnMsIGh5cGhlbnMsIHVuZGVyc2NvcmVzIGFuZCBhbGwgb3RoZXI