AutoPercenty3/titleManager/db_test.py

58 lines
5.8 KiB
Python

from mongoDBManager import MongoDBManager
from forbiddenWD_Manager import ForbiddenWordManager
from datetime import datetime, timezone
def insert_forbidden_words(db_manager, words_str, added_by="me", status="인증"):
"""
콤마로 구분된 단어 문자열을 받아 각 단어별로 문서를 생성하여 DB에 등록하는 함수입니다.
Parameters:
db_manager: MongoDBManager 인스턴스
words_str (str): 콤마로 구분된 단어 목록 (예: "apple, banana, orange")
added_by (str): 단어를 추가한 사용자 (기본값: "me")
status (str): 단어의 상태 (기본값: "인증")
"""
# 입력된 문자열을 콤마로 분리하고, 양쪽 공백을 제거한 후 빈 문자열은 제외
words = [word.strip() for word in words_str.split(",") if word.strip()]
# 각 단어별로 문서를 생성하여 DB에 등록
for word in words:
document = {
"word": word,
"has_trademark": True,
"title": "Dummy Title Max",
"registration_date": "2020-03-01",
"applicant_name": "Dummy Applicant",
"category_code": "003",
"category_description": "Dummy description",
"created_at": datetime.now(timezone.utc),
"added_by": added_by,
"status": status
}
db_manager.insert_one(document)
print(f"'{word}'가 금지어로 등록됨.")
if __name__ == "__main__":
# MongoDB 연결 URL 설정
db_url = 'mongodb://root:1234@cckb9998.synology.me:27017/'
# MongoDB Manager 및 금지어 Manager 인스턴스 생성
db_manager = MongoDBManager(db_url=db_url)
forbidden_manager = ForbiddenWordManager(db_manager)
# 콤마로 구분된 단어 목록 (예시)
forbidden_words_str = "나이키,아디다스,샤오미,아레나,화장품,식품,미즈노,산리오,폴로, polo, 애플, 자라, ZARA, 앨범, 게임타이틀, 레스포삭, 루이비통, 다이슨, 레고, 짱구, 라코스테, 블루레이,비비안, 비너스, 캘빈클라인, adidas, nike, 미키마우스, 르카프, BYC, 지오지아, 다이와, daiwa, 시마노, shimano, 골프, 승마, 이니스프리, 니콘, 후지필름, 앱손, 삼성전자, 중고, 갤럭시,타카, 아이폰, 휠체어,쌤쏘나이트,샘소나이트,스케쳐스,축구화,윌슨,아식스,요넥스,코치,COACH,더로우,the row,아미,ami,타미힐피거,Porsche,BMW,Audi,volvo,뉴발란스,비비드,borsalino,보르살리노,닥터마틴,팀버랜드,ArcTeryx,아크테릭스,허먼밀러,Samsonite,렉시떼,콘트라템포,apple,에어팟,프리휠러스,바버,barbour,예티,yeti,버즈릭슨,슈가케인,오닉스,onix,레노버,키즈,아동,유아,버버리,Jolyn,졸린,에어팟프로,아이팟,DANTON,단톤,어그,온러닝,세이코,포켓몬,건담,룰루레몬,리닝,리렌,파타고니아,꼼데가르송,미니로디니,바챠,bachaa,컘퍼,니들스,컨버스,나인웨스트,프라다,펜디,샤넬,르메르,LEMAIRE,오니츠카,요시다,타정,수비드,칼하트,몽벨,피코탄,보테가,베네타,캉골,몬데인,Mondaine,프리츠한센,카이저,이델,르크루제,발레리,키보드,LEMOUTON,르무통,로퍼,유니클로,조말론,Wilson,마샬,Beats,구글,로보락,Nintendo,미니맥시,minimaxi,슈올즈,옥펌기,직펌기,블랙다이아몬드,반스,Gucci,구찌,리복,티어,TYR,언더아머,힐피거,클라터뮤젠,랄프로렌,FCE,에프씨이,로렌랄프로렌,페더드프렌즈,비트라,Vitra,발망,캐피탈,KAPITAL,살로몬,SALOMON,보쉬,bosch,스탠리,stanley,마끼다,makita,디월트,DeWALT,KUOSE,쿠오세,에일릭로봇,Eilik,공식판매점,암웨이,슬라이락,보양,아쿠아픽,물레방아커터,Apple,네이처하이크,쌤소나이트,38explore,조디백,보테,로로피아나,캐나다구스,MKA,ugg,노스페이스,Mercedes,VOLVO,스타벅스,반다이,베어브릭,내셔널지오그래픽,WEDGWOOD,토리버치,뱅앤올룹슨,브론슨,고어텍스,지프,EQLZ,소니,블랙베리,Daiwa,전동건,usm,USM,스노우피크,Jackson,안타,ANTA,필슨,FILSON,맨체스터,푸마,포르쉐,버팔로,파운터코리아,에르메스,데상트,헬리콘텍스,Theory,띠어리,밍크바라클라바,에센셜,마지스,MAGIS,삼손체어,SamSon,벤츠,몽클레어,테크먼트,파운터,BEAMS,락포트,Rockport,오스프리,오클리,BAUER,카시오,노다,norda,리바이스,Citizen,자크뮈스,토즈,빌라쥬드레브,이탈리아아울렛,스톤아일랜드,미우미우,KEEN,Moncler,NVIDIA,빅토리아시크릿,나나미카,쯔리무사,페라가모,베르사체,TIMEX,디올,겐조,타이맥스,Artek,아르텍,라스포르티바,스카르파,FC바르셀로나,버켄스탁,umily,UMILY,PREMIATA,데스포르치,마르티넬리루체,PXG,제이린드버그,테일러메이드,핑,PING,지포어,타이틀리스트,어뉴,왁,Wac,오딧세이,캘러웨이,Callaway,클레버랜드,풋조이,말본,Malbon,스릭슨,미즈노,브릿지스톤,포틴,아담스골프,니켄트,윌슨,나이키골프,코브라,윌리암스,까스텔바작,와이드앵글,르꼬끄,팬텀,몽클레어,데상트,마스터바니,마크앤로나,사우스케이프,톨비스트,레노마골프,벤제프,JDX,마제스티,어뉴골프,PRGR,브릿지스톤,PEARLY GATES,젝시오"
# 콤마로 구분된 단어 목록을 금지어로 등록
insert_forbidden_words(db_manager, forbidden_words_str, added_by="me", status="인증")
# 관리자 인증 예시 (필요시 주석 해제 후 사용)
# forbidden_manager.authenticate_word("example123", admin_user="admin_user")
# 인증된 단어만 조회 (필요시 주석 해제 후 사용)
# words = forbidden_manager.list_all_words(filter_status="인증")
# print("인증된 단어 목록:", words)
# DB 연결 종료
db_manager.close_connection()