1
|
|
|
from qpage import * |
2
|
|
|
import sys |
3
|
|
|
import gc |
4
|
|
|
|
5
|
|
|
|
6
|
|
|
def error_handler(): |
7
|
|
|
""" Close files and check errors and start again main |
8
|
|
|
call: |
9
|
|
|
-close_files |
10
|
|
|
-error_finder |
11
|
|
|
-Show_items |
12
|
|
|
-enter_to_exit |
13
|
|
|
-main_handler |
14
|
|
|
""" |
15
|
|
|
close_files() # Close all of the open files |
16
|
|
|
vector_2 = error_finder() # load error and pass vector |
17
|
|
|
error_vector = vector_2[0] # extract errors |
18
|
|
|
pass_vector = vector_2[1] # extract pass |
19
|
|
|
print(str(len(error_vector)) + " Error") # print number of errors |
20
|
|
|
print("Please Check Following :\n") |
21
|
|
|
show_items(error_vector) # print error |
22
|
|
|
for i, item in enumerate(pass_vector): |
23
|
|
|
print(str(i + len(error_vector) + 1) + "-" + item) |
24
|
|
|
enter_to_exit() # get input from user to continue |
25
|
|
|
main_handler() |
26
|
|
|
|
27
|
|
|
|
28
|
|
|
def file_handler(): |
29
|
|
|
""" Write files |
30
|
|
|
call: |
31
|
|
|
-html_init |
32
|
|
|
-contain |
33
|
|
|
-css_creator |
34
|
|
|
-icon_creator |
35
|
|
|
-robot_maker |
36
|
|
|
-close_files |
37
|
|
|
""" |
38
|
|
|
for i in ACTUAL_NAME: |
39
|
|
|
html_init(i) # create pages html files |
40
|
|
|
menu_writer() # write menu for each html file |
41
|
|
|
for i in ACTUAL_NAME: |
42
|
|
|
contain(i) # write contains of each page |
43
|
|
|
html_end(i) # end tags of each page |
44
|
|
|
css_creator() # create css file |
45
|
|
|
icon_creator() |
46
|
|
|
robot_maker() |
47
|
|
|
close_files() |
48
|
|
|
|
49
|
|
|
|
50
|
|
|
def main_handler_2(time_1=0): |
51
|
|
|
""" Second part of main handler |
52
|
|
|
|
53
|
|
|
:param time_1: time that passed but not counted in generation time |
54
|
|
|
|
55
|
|
|
call: |
56
|
|
|
-file_handler |
57
|
|
|
-address_print |
58
|
|
|
-print_warning |
59
|
|
|
-file_size |
60
|
|
|
-internet |
61
|
|
|
-server |
62
|
|
|
-preview |
63
|
|
|
-close_files |
64
|
|
|
""" |
65
|
|
|
file_handler() # call file_handler |
66
|
|
|
total_perf_time = generation_time(time_1) |
67
|
|
|
print("HOMEPAGE is ready,generated in " + str(total_perf_time) + " sec") |
68
|
|
|
print("Upload output folder contains directly to your host") |
69
|
|
|
print("Please Don't Change HTML Files Name") |
70
|
|
|
address_print() # print files location |
71
|
|
|
print_warning() # print all of the detected warnings |
72
|
|
|
file_size() |
73
|
|
|
logger(True, perf_time=total_perf_time) # add success run of qpage to local logger |
74
|
|
|
if internet(): # check internet connection |
75
|
|
|
server() # send query to qpage server |
76
|
|
|
browse = int(input("Preview HOMEPAGE?[1] or Not[2]")) # get input from user for preview of site |
77
|
|
|
if browse == 1: # check browse status |
78
|
|
|
preview() # call preview function |
79
|
|
|
close_files() # close all of the open files |
80
|
|
|
gc.collect() |
81
|
|
|
|
82
|
|
|
|
83
|
|
|
def response_handler(response): |
84
|
|
|
""" Calculate the generation time |
85
|
|
|
|
86
|
|
|
:param response: if there was a response run main handler again |
87
|
|
|
call: |
88
|
|
|
-wait_func |
89
|
|
|
-main_handler |
90
|
|
|
""" |
91
|
|
|
if response: # check response status |
92
|
|
|
print( |
93
|
|
|
"At least one of the folders create for the first time ,\n" |
94
|
|
|
" please put your data in proper order and run program again\n Program Reboot Automatically in 3 Sec") |
95
|
|
|
wait_func(3) # wait for 3 sec |
96
|
|
|
main_handler(False) # call main_handler again with False VERSION control flag |
97
|
|
|
sys.exit() # exit program |
98
|
|
|
|
99
|
|
|
|
100
|
|
|
def sample_handler(): |
101
|
|
|
""" Ask for run sample website |
102
|
|
|
call: |
103
|
|
|
-sample_site_download |
104
|
|
|
-is_sample_downloaded |
105
|
|
|
""" |
106
|
|
|
# Get Input form user for loading sample files or continue |
107
|
|
|
response = input( |
108
|
|
|
"Press [S] to enter sample site material running or other keys to continue with your data") |
109
|
|
|
print_line(70) # print line |
110
|
|
|
if response.upper() == "S": # check response status |
111
|
|
|
sample_site_download(is_sample_downloaded()) # Call sample download |
112
|
|
|
|
113
|
|
|
|
114
|
|
|
def main_handler(control_flag=True): |
115
|
|
|
""" Main Handler |
116
|
|
|
|
117
|
|
|
:param control_flag: Check if VERSION control passed in prev step then Check for new VERSION of qpage |
118
|
|
|
call: |
119
|
|
|
-generation_time |
120
|
|
|
-create_folder |
121
|
|
|
-print_logo |
122
|
|
|
-address_print |
123
|
|
|
-version_control |
124
|
|
|
-sample_handler |
125
|
|
|
-response_handler |
126
|
|
|
-page_name_update |
127
|
|
|
-main_handler_2 |
128
|
|
|
-error_log |
129
|
|
|
-logger |
130
|
|
|
-close_files |
131
|
|
|
-enter_to_exi |
132
|
|
|
|
133
|
|
|
|
134
|
|
|
""" |
135
|
|
|
try: |
136
|
|
|
start_time = generation_time() |
137
|
|
|
response = create_folder() # Check Folder and Files Status |
138
|
|
|
print("QPAGE By S.Haghighi & M.M.Rahimi") |
139
|
|
|
print("VERSION : " + VERSION) |
140
|
|
|
print_logo() |
141
|
|
|
address_print() # Print Files Location |
142
|
|
|
if control_flag: # Check if VERSION control passed in prev step |
143
|
|
|
version_control() # Check for new VERSION of qpage |
144
|
|
|
response_handler(response) # call response_handler |
145
|
|
|
sample_handler() # run sample handler |
146
|
|
|
clear_folder(OUT_DIR) # clear all of files in output directory |
147
|
|
|
page_name_update() # update page names |
148
|
|
|
main_handler_2(time_1=start_time) # call part_2 of main_handler |
149
|
|
|
except FileNotFoundError as e: # error exception in FileNotFound ( When Something Missed) |
150
|
|
|
error_log(e) |
151
|
|
|
logger(False) # Add Failed Run to local logger file |
152
|
|
|
error_handler() # call error_handler |
153
|
|
|
except ValueError as e: |
154
|
|
|
error_log(e) |
155
|
|
|
print("Bad Input") |
156
|
|
|
logger(False) # Add Failed Run to local logger file |
157
|
|
|
close_files() # Close all of the opne files |
158
|
|
|
enter_to_exit() # get input from user to continue |
159
|
|
|
main_handler() # call part_1 of main_handler , restart from the first |
160
|
|
|
except PermissionError as e: |
161
|
|
|
error_log(e) |
162
|
|
|
logger(False) # Add Failed Run to local logger file |
163
|
|
|
print("Files Is Open By Another Program") |
164
|
|
|
close_files() # Close all of the open files |
165
|
|
|
enter_to_exit() # get input from user to continue |
166
|
|
|
main_handler() # call part_1 of main_handler , resetart from the first |
167
|
|
|
|
168
|
|
|
|
169
|
|
|
if __name__ == "__main__": |
170
|
|
|
main_handler() |
171
|
|
|
|