| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  | #!/usr/bin/env python3 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-05 01:55:23 +08:00
										 |  |  | import re  | 
					
						
							| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  | import os | 
					
						
							|  |  |  | import glob | 
					
						
							|  |  |  | from tabnanny import check | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def main(): | 
					
						
							|  |  |  |    print('export const LANGS = {') | 
					
						
							| 
									
										
										
										
											2022-05-12 18:31:17 +08:00
										 |  |  |    for fn in glob.glob('../../../src/lang/*'): | 
					
						
							| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  |       lang = os.path.basename(fn)[:-3] | 
					
						
							| 
									
										
										
										
											2022-03-25 18:56:55 +08:00
										 |  |  |       if lang == 'template': continue | 
					
						
							| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  |       print('  %s: {'%lang) | 
					
						
							|  |  |  |       for ln in open(fn): | 
					
						
							|  |  |  |          ln = ln.strip() | 
					
						
							|  |  |  |          if ln.startswith('("'): | 
					
						
							|  |  |  |             toks = ln.split('", "') | 
					
						
							|  |  |  |             assert(len(toks) == 2) | 
					
						
							|  |  |  |             a = toks[0][2:] | 
					
						
							|  |  |  |             b = toks[1][:-3] | 
					
						
							|  |  |  |             print('    "%s": "%s",'%(a, b)) | 
					
						
							|  |  |  |       print('  },') | 
					
						
							|  |  |  |    print('}') | 
					
						
							|  |  |  |    check_if_retry = ['', False] | 
					
						
							|  |  |  |    KEY_MAP = ['', False] | 
					
						
							|  |  |  |    for ln in open('../hbb/src/client.rs'): | 
					
						
							|  |  |  |       ln = ln.strip() | 
					
						
							|  |  |  |       if 'check_if_retry' in ln: | 
					
						
							|  |  |  |          check_if_retry[1] = True | 
					
						
							|  |  |  |          continue | 
					
						
							|  |  |  |       if ln.startswith('}') and check_if_retry[1]: | 
					
						
							|  |  |  |          check_if_retry[1] = False | 
					
						
							|  |  |  |          continue | 
					
						
							|  |  |  |       if check_if_retry[1]: | 
					
						
							| 
									
										
										
										
											2022-02-05 01:55:23 +08:00
										 |  |  |          ln = removeComment(ln) | 
					
						
							| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  |          check_if_retry[0] += ln + '\n' | 
					
						
							|  |  |  |       if 'KEY_MAP' in ln: | 
					
						
							|  |  |  |          KEY_MAP[1] = True | 
					
						
							|  |  |  |          continue | 
					
						
							|  |  |  |       if '.collect' in ln and KEY_MAP[1]: | 
					
						
							|  |  |  |          KEY_MAP[1] = False | 
					
						
							|  |  |  |          continue | 
					
						
							|  |  |  |       if KEY_MAP[1] and ln.startswith('('): | 
					
						
							| 
									
										
										
										
											2022-02-05 01:55:23 +08:00
										 |  |  |          ln = removeComment(ln) | 
					
						
							| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  |          toks = ln.split('", Key::') | 
					
						
							|  |  |  |          assert(len(toks) == 2) | 
					
						
							|  |  |  |          a = toks[0][2:] | 
					
						
							|  |  |  |          b = toks[1].replace('ControlKey(ControlKey::', '').replace("Chr('", '').replace("' as _)),", '').replace(')),', '') | 
					
						
							|  |  |  |          KEY_MAP[0] += '  "%s": "%s",\n'%(a, b) | 
					
						
							|  |  |  |    print() | 
					
						
							|  |  |  |    print('export function checkIfRetry(msgtype: string, title: string, text: string) {') | 
					
						
							|  |  |  |    print('  return %s'%check_if_retry[0].replace('to_lowercase', 'toLowerCase').replace('contains', 'indexOf').replace('!', '').replace('")', '") < 0')) | 
					
						
							|  |  |  |    print(';}') | 
					
						
							|  |  |  |    print() | 
					
						
							|  |  |  |    print('export const KEY_MAP: any = {') | 
					
						
							|  |  |  |    print(KEY_MAP[0]) | 
					
						
							|  |  |  |    print('}') | 
					
						
							| 
									
										
										
										
											2022-05-12 18:31:17 +08:00
										 |  |  |    for ln in open('../../../Cargo.toml'): | 
					
						
							| 
									
										
										
										
											2022-01-30 19:48:41 +08:00
										 |  |  |       if ln.startswith('version ='): | 
					
						
							|  |  |  |          print('export const ' + ln) | 
					
						
							| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  |        | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-05 01:55:23 +08:00
										 |  |  | def removeComment(ln): | 
					
						
							|  |  |  |    return re.sub('\s+\/\/.*$', '', ln) | 
					
						
							| 
									
										
										
										
											2022-01-30 03:39:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-25 18:56:55 +08:00
										 |  |  | main() |