Completed
Push — master ( d605a1...1292a2 )
by Anas
01:36
created

kekify()   C

Complexity

Conditions 8

Size

Total Lines 56

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 1
Metric Value
cc 8
c 3
b 0
f 1
dl 0
loc 56
rs 6.1256

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
from modules.get_image import get_image
2
import yaml
3
import subprocess
4
import datetime
5
6
# import path
7
with open("config.yml", "r") as f:
8
    kek_folder = yaml.load(f)["path"]["kek"]
9
10
11
# get image, pass parameter
12
def kek(bot, update):
13
    if update.message.reply_to_message is not None:
14
        kek_param = "".join(update.message.text[5:7])
15
    else:
16
        kek_param = "".join(update.message.caption[5:7])
17
    try:
18
        get_image(bot, update, kek_folder)
19
    except:
20
        update.message.reply_text("Can't get the image! :(")
21
        return
22
    result = kekify(bot, update, kek_param)
23
    try:
24
        with open(kek_folder+result, "rb") as f:
25
            update.message.reply_photo(f)
26
        print(datetime.datetime.now(), ">>>", "Done kek", ">>>", update.message.from_user.username)
27
    except:
28
        return
29
30
31
# kek process + send
32
def kekify(bot, update, kek_param):
33
    try:
34
        if kek_param == "-l" or kek_param == "":
35
            crop = "50%x100% "
36
            piece_one = "result-0.jpg "
37
            piece_two = "result-1.jpg "
38
            flip = "-flop "
39
            order = kek_folder + piece_one + kek_folder + piece_two
40
            append = "+append "
41
            result = "kek-left.jpg"
42
        elif kek_param == "-r":
43
            crop = "50%x100% "
44
            piece_one = "result-1.jpg "
45
            piece_two = "result-0.jpg "
46
            flip = "-flop "
47
            order = kek_folder + piece_two + kek_folder + piece_one
48
            append = "+append "
49
            result = "kek-right.jpg"
50
        elif kek_param == "-t":
51
            crop = "100%x50% "
52
            piece_one = "result-0.jpg "
53
            piece_two = "result-1.jpg "
54
            flip = "-flip "
55
            order = kek_folder + piece_one + kek_folder + piece_two
56
            append = "-append "
57
            result = "kek-top.jpg"
58
        elif kek_param == "-b":
59
            crop = "100%x50% "
60
            piece_one = "result-1.jpg "
61
            piece_two = "result-0.jpg "
62
            flip = "-flip "
63
            order = kek_folder + piece_two + kek_folder + piece_one
64
            append = "-append "
65
            result = "kek-bot.jpg"
66
        elif kek_param == "-m":
67
            kekify(bot, update, "-l")
68
            kekify(bot, update, "-r")
69
            kekify(bot, update, "-t")
70
            kekify(bot, update, "-b")
71
            append_lr = "convert " + kek_folder + "kek-left.jpg " + kek_folder + "kek-right.jpg +append " + kek_folder + "kek-lr-temp.jpg"
72
            subprocess.run(append_lr, shell=True)
73
            append_tb = "convert " + kek_folder + "kek-top.jpg " + kek_folder + "kek-bot.jpg +append " + kek_folder + "kek-tb-temp.jpg"
74
            subprocess.run(append_tb, shell=True)
75
            append_all = "convert " + kek_folder + "kek-lr-temp.jpg " + kek_folder + "kek-tb-temp.jpg -append " + kek_folder + "multikek.jpg"
76
            subprocess.run(append_all, shell=True)
77
            result = "multikek.jpg"
78
            return result
79
        cut = "convert " + kek_folder + "original.jpg -crop " + crop + kek_folder + "result.jpg"
80
        subprocess.run(cut, shell=True)
81
        mirror = "convert " + kek_folder + piece_one + flip + kek_folder + piece_two
82
        subprocess.run(mirror, shell=True)
83
        append = "convert " + order + append + kek_folder + result
84
        subprocess.run(append, shell=True)
85
        return result
86
    except:
87
        update.message.reply_text("Unknown kek parameter.\nUse -l, -r, -t, -b or -m")
88