fish 8 months ago
parent
commit
b6ea9fc66f

+ 6 - 6
main.py

@@ -6,7 +6,7 @@
 @Time    :   2023/03/08 17:39:34
 @License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
 @Desc    :   enter point
-searchdomain generate --lang zh --keyword go --position prefix
+searchdomain generate --lang zh --keyword gpt,go --position prefix --domain io,com,cn
 searchdomain search --
 '''
 
@@ -17,13 +17,13 @@ import sys
 if __name__== "__main__":
     args = parse_args()
     if args.get("command","")=="generate":
-        if args.get("lang","en"):
-            generateDomain = GenerateEnDomain() 
-        elif args.get("lang", "zh"):
-            generateDomain = GenerateDomain()
+        if args.get("lang","en")=="en":
+            generateDomain = GenerateEnDomain(params=args) 
+        elif args.get("lang", "en")=="zh":
+            generateDomain = GenerateDomain(params=args)
         generateDomain.run()
     elif args.get("command","")=="search":
-        serachdomain = SearchDomain(debug=True, export_all=False) 
+        serachdomain = SearchDomain(params=args, debug=True, export_all=True) 
         serachdomain.run()
     elif args.get("command","")=="version":
         # print(__verison__)

+ 1 - 1
searchdomain/config.py

@@ -17,4 +17,4 @@ config= {
     "default": DevelopmentConfig,
     "develop": DevelopmentConfig,
     "production": ProductionConfig
-}
+}

+ 11 - 5
searchdomain/generate_domain.py

@@ -14,12 +14,15 @@ import csv
 
 class GenerateDomain(object):
     
-    def __init__(self):
+    def __init__(self, params: dict,):
         '''初始化列表'''
         self.initPinYin=[]
-        self.composePinYin=[]
+        self.params = params
+        self.keyword= self.params['keyword'].split(',')
         # self.yuming=["com","cn","me","net"]
-        self.yuming=["com"]
+        self.yuming = self.params["domain"].split(',')
+
+        self.composePinYin=[]
         self.composeDomain=[]
 
     def run(self):
@@ -32,8 +35,11 @@ class GenerateDomain(object):
                         self.initPinYin.append(pinyin)
 
             for i in self.initPinYin:
-                for j in self.initPinYin:
-                    self.composePinYin.append(i+j)
+                for j in self.keyword:
+                    if self.params["position"]=="prefix":
+                        self.composePinYin.append(i+j)
+                    else:
+                        self.composePinYin.append(j+i)
 
             for i in self.composePinYin:
                 for j in self.yuming:

+ 12 - 8
searchdomain/generate_en_domain.py

@@ -14,26 +14,30 @@ import csv
 
 class GenerateEnDomain(object):
     
-    def __init__(self):
+    def __init__(self, params: dict):
         '''初始化列表'''
         self.initList=[]
+        self.params =params
         # self.keyword=["chat","ai"] # chat+xx
-        self.keyword=["ai"] # xx + ai
-        self.composePinYin=[]
+        
+        self.keyword= self.params['keyword'].split(',')
         # self.yuming=["com","cn","me","net","co","run","wiki","tech","org","info","vip","cc","app","io","one","tk","xyz"]
-        self.yuming=["com"]
+        self.yuming=self.params["domain"].split(',')
         self.composeDomain=[]
+        self.composePinYin=[]
 
     def run(self):
-        with open(("res3.csv"), "r", encoding="utf-8") as f:
+        with open((r"data/b.csv"), "r", encoding="utf-8") as f:
             csv_data = f.readlines()
             for row in csv_data:
                 self.initList.append(row.strip())
-
+            
             for i in self.initList:
                 for j in self.keyword:
-                    self.composePinYin.append(i+j)
-                    # self.composePinYin.append(j+i)
+                    if self.params['position']=="prefix":
+                        self.composePinYin.append(i+j)
+                    else:
+                        self.composePinYin.append(j+i)
 
             for i in self.composePinYin:
                 for j in self.yuming:

+ 8 - 2
searchdomain/options.py

@@ -15,9 +15,15 @@ def parse_args():
     parser = argparse.ArgumentParser(description='search domain')
     parser.add_argument('command',  help='command: generate, search', choices=['generate','search', 'help','version'] , default='help')
     parser.add_argument('--export_all', action='store_true', help='export all domain')
+    parser.add_argument(
+        "--input", help="set input domain list file,eg: domain.txt", type=str, default="domain.txt")
+    parser.add_argument(
+        "--output", help="set output domain result list file,eg: result.txt", type=str, default="result.txt")
+        
     parser.add_argument('--lang', choices=['zh', 'en'], default='en',help='language')
-    parser.add_argument('--keyword', default='',help='input a keyword')
-    parser.add_argument('--positon', default='prefix',choices=['prefix', 'suffix'], help='choose generate str positon')
+    parser.add_argument('--domain', default='com',help='input some domain, plilt with ","')
+    parser.add_argument('--keyword', default='', help='input some keyword, spilt with ","')
+    parser.add_argument('--position', default='prefix',choices=['prefix', 'suffix'], help='choose generate str positon')
     args = parser.parse_args()
 
     # remove None

+ 4 - 11
searchdomain/searchdomain.py

@@ -7,7 +7,7 @@ from . import db
 class SearchDomain(object):
     """search avaliable domain and save result"""
 
-    def __init__(self, debug=False, export_all=False):
+    def __init__(self, params: dict, debug=False, export_all=True):
         '''
         初始化
         debug 调试模式
@@ -15,17 +15,10 @@ class SearchDomain(object):
         return:
         '''
         super(SearchDomain, self).__init__()
+        self.params = params
         self.export_all=export_all
-        parser = argparse.ArgumentParser(description='Demo of argparse')
-        parser.add_argument(
-            "--input", help="set input domain list file,eg: domain.txt", type=str, default="domain.txt")
-        parser.add_argument(
-            "--output", help="set output domain result list file,eg: result.txt", type=str, default="result.txt")
-        args = parser.parse_args()
-        if args.input:
-            self.input = args.input
-        if args.output:
-            self.output = args.output
+        self.input=params["input"]
+        self.output=params["output"]
         if debug == True:
             logging.basicConfig(level=logging.DEBUG)