mirror: 初始快照

This commit is contained in:
Li_Feiyu committed 2026-10-02 22:48:14 +08:00
commit 4e9a58e521
21 files changed
+278493

No files matched your search

+127
View File
@@ -0,0 +1,127 @@
# VS Code
.vscode/*
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Kemal Ogun Isik
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+38
View File
@@ -0,0 +1,38 @@
# 项目目的
将土耳其语言协会(Türk Dil Kurumu)发布的《当代土耳其语词典》(Güncel Türkçe Sözlük)整理为可供开发者使用的格式。项目当前收录 92,406 个词条,均为最新版本。
本词典提供三种不同格式下载:
1. JSON 文件:[gts.json.tar.gz](sozluk/gts.json.tar.gz)
2. MongoDB 归档文件:[gts.mongo4.gzip.archive](sozluk/gts.mongo4.gzip.archive)
3. SQLite 数据库:[gts.sqlite3.db](sozluk/gts.sqlite3.db)
## JSON
所下载的文件经 GZIP 压缩。解压后可使用任意文本编辑器查看其内容。
## MongoDB
可使用以下命令将所下载的文件导入您自己的 MongoDB 服务器:
`mongorestore --gzip --archive=gts.mongo4.gzip.archive`
## SQLite
所下载的文件可使用任意 SQLite 查看器查看与使用。数据库结构如下:
![alt text](static/schema.png "SQLite Schema")
# TDK 2007 词典
TDK 于 2007 年发布的词典可通过 old 文件夹中的 [TDK-2007.rar](old/TDK-2007.rar) 文件获取。旧版词典共收录 73,707 个词条。
# 当代土耳其语词典
系土耳其语言协会自 1945 年起出版的《土耳其语词典》于 2011 年推出的第 11 版经修订更新后在互联网上发布的版本。该词典随语言发展持续更新。
http://www.sozluk.gov.tr/
## 关于本镜像
本仓库系 ahembal/GuncelTurkceSozluk 的忠实镜像。原项目以 MIT 许可发布(Copyright 2021 Kemal Ogun Isik),著作权归原作者所有。上游版本系经 codeload 解压获得,本镜像未保留本地 git 历史;抓取于 2026-10-02;来源与完整许可见本仓 LICENSE。
BIN
View File
Binary file not shown.
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
# Inspired by
# https://www.codeenigma.com/community/blog/using-mdbtools-nix-convert-microsoft-access-mysql
# USAGE
# Rename your MDB file to migration-export.mdb
# run ./mdb2sqlite.sh migration-export.mdb
# wait and wait a bit longer...
mdb-schema migration-export.mdb sqlite > schema.sql
mkdir sqlite
mkdir sql
for i in $( mdb-tables migration-export.mdb ); do echo $i ; mdb-export -D "%Y-%m-%d %H:%M:%S" -H -I sqlite migration-export.mdb $i > sql/$i.sql; done
mv schema.sql sqlite
mv sql sqlite
cd sqlite
cat schema.sql | sqlite3 db.sqlite3
for f in sql/* ; do echo $f && (echo 'BEGIN;'; cat $f; echo 'COMMIT;') | sqlite3 db.sqlite3; done
+42
View File
@@ -0,0 +1,42 @@
-- ----------------------------------------------------------
-- MDB Tools - A library for reading MS Access database files
-- Copyright (C) 2000-2011 Brian Bruns and others.
-- Files in libmdb are licensed under LGPL and the utilities under
-- the GPL, see COPYING.LIB and COPYING files respectively.
-- Check out http://mdbtools.sourceforge.net
-- ----------------------------------------------------------
-- That file uses encoding UTF-8
CREATE TABLE `SENSES`
(
`WORD_ID` varchar,
`MULT_NO` varchar,
`SENSE_NO` INTEGER,
`VERB` varchar,
`WORD_TYPE1` varchar,
`WORD_TYPE2` varchar,
`WORD_TYPE3` varchar,
`USAGE_TYPE1` varchar,
`USAGE_TYPE2` varchar,
`CONTEXT1` varchar,
`CONTEXT2` varchar,
`MEANING` TEXT,
`CÜMLE` TEXT
);
CREATE TABLE `WORDMULT`
(
`WORD_ID` varchar,
`MULT_NO` varchar,
`PRE_MULT` varchar,
`HEAD_MULT` varchar,
`SUFFIX` varchar,
`PLURAL` varchar,
`SPECIAL` varchar,
`LANGUAGE1` varchar,
`SEE_PRE` TEXT
);
-- CREATE Relationships ...
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
{
"python.pythonPath": "env/bin/python3",
"python.formatting.provider": "black"
}
+101728
View File
File diff suppressed because it is too large. Load diff
+212
View File
@@ -0,0 +1,212 @@
""" MongoDB icerisindeki kayitlari SQLite veritabanina aktarir """
from pymongo import MongoClient
import sqlite3
CLIENT = MongoClient("localhost", 27017)
MONGO_TOPICS = CLIENT.gts.maddeler
def create_connection(db_file):
""" sqlite connectionu olusturur """
try:
conn = sqlite3.connect(db_file)
return conn
except Exception as e:
print(e)
return None
def insert_anlam(conn, anlam):
""" anlami veritabanina ekler """
sql = """INSERT INTO anlam(anlam_id,madde_id,anlam_sira,fiil,tipkes,anlam,gos)
VALUES (?,?,?,?,?,?,?)"""
arr = (
anlam["anlam_id"],
anlam["madde_id"],
anlam["anlam_sira"],
anlam["fiil"],
anlam["tipkes"],
anlam["anlam"],
anlam["gos"],
)
cur = conn.cursor()
cur.execute(sql, arr)
if "ozelliklerListe" in anlam:
insert_ozellikler(conn, anlam["anlam_id"], anlam["ozelliklerListe"])
if "orneklerListe" in anlam:
insert_ornekler(conn, anlam["orneklerListe"])
return cur.lastrowid
def insert_anlamlar(conn, madde):
""" anlamlari veritabanina ekler """
if "anlamlarListe" not in madde:
return None
anlamlar = madde["anlamlarListe"]
for anlam in anlamlar:
insert_anlam(conn, anlam)
def insert_anlam_ozellik(conn, anlam_id, ozellik_id):
""" anlam_ozellik ilisiklisini veritanina ekler """
sql = """INSERT INTO anlam_ozellik(anlam_id, ozellik_id)
VALUES (?,?)"""
arr = (anlam_id, ozellik_id)
cur = conn.cursor()
cur.execute(sql, arr)
def insert_atasozu(conn, atasozu):
""" atasozunu veritabanina ekler """
sql = """INSERT OR REPLACE INTO atasozu(madde_id,madde)
VALUES (?,?)"""
arr = (atasozu["madde_id"], atasozu["madde"])
cur = conn.cursor()
cur.execute(sql, arr)
def insert_atasozleri(conn, madde):
""" atasozlerini veritabanina ekler """
if "atasozu" not in madde:
return None
atasozleri = madde["atasozu"]
for atasozu in atasozleri:
insert_atasozu(conn, atasozu)
insert_madde_atasozu(conn, madde["madde_id"], atasozu["madde_id"])
def insert_madde(conn, madde):
""" maddeyi veritabanina ekler """
sql = """INSERT INTO madde(madde_id,kac,kelime_no,cesit,anlam_gor,on_taki,madde,cesit_say,anlam_say,taki,cogul_mu,ozel_mi,lisan_kodu,lisan,telaffuz,birlesikler,font,madde_duz,gosterim_tarihi)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"""
arr = (
madde.get("madde_id"),
madde.get("kac"),
madde.get("kelime_no"),
madde.get("cesit"),
madde.get("anlam_gor"),
madde.get("on_taki"),
madde.get("madde"),
madde.get("cesit_say"),
madde.get("anlam_say"),
madde.get("taki"),
madde.get("cogul_mu"),
madde.get("ozel_mi"),
madde.get("lisan_kodu"),
madde.get("lisan"),
madde.get("telaffuz"),
madde.get("birlesikler"),
madde.get("font"),
madde.get("madde_duz"),
madde.get("gosterim_tarihi"),
)
cur = conn.cursor()
cur.execute(sql, arr)
return cur.lastrowid
def insert_madde_atasozu(conn, madde_id, atasozu_madde_id):
""" madde_atasozu iliskisini kurar """
sql = """INSERT INTO madde_atasozu(madde_id, atasozu_madde_id)
VALUES (?,?)"""
arr = (madde_id, atasozu_madde_id)
cur = conn.cursor()
cur.execute(sql, arr)
def insert_ornek(conn, ornek):
""" ornegi veritabanina ekler """
if "yazar" in ornek:
insert_yazarlar(conn, ornek["yazar"])
sql = """INSERT INTO ornek(ornek_id,anlam_id,ornek_sira,ornek,kac,yazar_id)
VALUES (?,?,?,?,?,?)"""
yazar_id = None
if ornek["yazar_id"] and ornek["yazar_id"] != "0":
yazar_id = ornek["yazar_id"]
arr = (
ornek["ornek_id"],
ornek["anlam_id"],
ornek["ornek_sira"],
ornek["ornek"],
ornek["kac"],
yazar_id,
)
cur = conn.cursor()
cur.execute(sql, arr)
def insert_ornekler(conn, ornekler):
""" ornekleri veritabanina ekler """
if not ornekler:
return None
for ornek in ornekler:
insert_ornek(conn, ornek)
def insert_ozellik(conn, ozellik):
""" ozelligi veritabanina ekler """
sql = """INSERT OR REPLACE INTO ozellik(ozellik_id,tur,tam_adi,kisa_adi,ekno)
VALUES (?,?,?,?,?)"""
arr = (
ozellik["ozellik_id"],
ozellik["tur"],
ozellik["tam_adi"],
ozellik["kisa_adi"],
ozellik["ekno"],
)
cur = conn.cursor()
cur.execute(sql, arr)
def insert_ozellikler(conn, anlam_id, ozellikler):
""" ozellikleri veritabanina ekler """
if not ozellikler:
return None
for ozellik in ozellikler:
insert_ozellik(conn, ozellik)
insert_anlam_ozellik(conn, anlam_id, ozellik["ozellik_id"])
def insert_yazar(conn, yazar):
""" yazari veritabanina ekler """
sql = """INSERT OR REPLACE INTO yazar(yazar_id,tam_adi,kisa_adi,ekno)
VALUES (?,?,?,?)"""
arr = (yazar["yazar_id"], yazar["tam_adi"], yazar["kisa_adi"], yazar["ekno"])
cur = conn.cursor()
cur.execute(sql, arr)
def insert_yazarlar(conn, yazarlar):
""" yazarlari veritabanina ekler """
if not yazarlar:
return None
for yazar in yazarlar:
insert_yazar(conn, yazar)
def execute():
""" ana method """
for madde in MONGO_TOPICS.find():
conn = create_connection("guncel-turkce-sozluk.db")
insert_madde(conn, madde)
insert_anlamlar(conn, madde)
insert_atasozleri(conn, madde)
conn.commit()
if __name__ == "__main__":
execute()
+1
View File
@@ -0,0 +1 @@
[{"madde":"-den yana"},{"madde":"-den yana çıkmak"},{"madde":"-den yana olmak"},{"madde":"-di'li geçmiş"},{"madde":"-miş'li geçmiş"},{"madde":"...-e gelince"},{"madde":"... -e kuvvet"},{"madde":"...-inde değil"},{"madde":"...-in karesi"},{"madde":"...-meye görsün (veya gör)"},{"madde":"...-nın başında gelmek (veya yer almak)"},{"madde":"... azmanı"},{"madde":"... bir hâl almak (hâle girmek)"},{"madde":"... canlısı (olmak)"},{"madde":"... damgasını vurmak"},{"madde":"... delisi (olmak)"},{"madde":"... demeye getirmek"},{"madde":"... demeye kalmamak"},{"madde":"... den kalır yeri yok"},{"madde":"... durumuna düşmek"},{"madde":"... durumunda olmak (veya bulunmak)"},{"madde":"... duygusu uyandırmak"},{"madde":"... düşkünü (olmak)"},{"madde":"... elinden çıkmak"},{"madde":"... fırın ekmek yemesi lazım"},{"madde":"... gibi yapmak"},{"madde":"... gözüyle bakmak"},{"madde":"... hâline gelmek"},{"madde":"... hastası (olmak)"},{"madde":"... ile beraber"},{"madde":"... kim ... kim"},{"madde":"... kisvesi altında"},{"madde":"... lüksü olmamak"},{"madde":"... meraklısı (olmak)"},{"madde":"... nazarıyla bakmak"},{"madde":"... nere ... nere"},{"madde":"... nerede ... orada"},{"madde":"... olsun ... olsun"},{"madde":"... sevdasına düşmek"},{"madde":"... şerefine"},{"madde":"... vaziyeti takınmak"},{"madde":"... yaşını sürmek"},{"madde":"... ye kalsa (veya kalırsa)"},{"madde":"... yoluna"},{"madde":"... ziyafeti çekmek"},{"madde":"a"},{"madde":"a'dan z'ye (kadar)"},{"madde":"a \/ e"},{"madde":"a, A"},{"madde":"ab"},{"madde":"aba"},{"madde":"aba"},{"madde":"aba altında er yatar"},{"madde":"aba altından sopa (veya değnek) göstermek"},{"madde":"abacı"},{"madde":"abacı kebeci (ara yerde) sen neci?"},{"madde":"abacılık"},{"madde":"abadi"},{"madde":"aba gibi"},{"madde":"aba güreşi"},{"madde":"abajur"},{"madde":"abajurcu"},{"madde":"abajurculuk"},{"madde":"abajurlu"},{"madde":"abajursuz"},{"madde":"abaküs"},{"madde":"abalı"},{"madde":"Abana"},{"madde":"abanabilme"},{"madde":"abanabilmek"},{"madde":"abandırabilme"},{"madde":"abandırabilmek"},{"madde":"abandırıverme"},{"madde":"abandırıvermek"},{"madde":"abandırma"},{"madde":"abandırmak"},{"madde":"abandone"},{"madde":"abandone etmek"},{"madde":"abandone olmak"},{"madde":"abanın kadri yağmurda bilinir"},{"madde":"abanış"},{"madde":"abanıverme"},{"madde":"abanıvermek"},{"madde":"abani"},{"madde":"abanma"},{"madde":"abanmak"},{"madde":"abanoz"},{"madde":"abanoz gibi"},{"madde":"abanozgiller"},{"madde":"abanoz kesilmek"},{"madde":"abanozlaşıverme"},{"madde":"abanozlaşıvermek"},{"madde":"abanozlaşma"},{"madde":"abanozlaşmak"},{"madde":"abanozlaştırabilme"},{"madde":"abanozlaştırabilmek"},{"madde":"abanozlaştırıverme"},{"madde":"abanozlaştırıvermek"},{"madde":"abanozlaştırma"},{"madde":"abanozlaştırmak"},{"madde":"abartabilme"},{"madde":"abartabilmek"},{"madde":"abartı"},{"madde":"abartıcı"},{"madde":"abartıcılık"},{"madde":"abartık"},{"madde":"abartılabilme"},{"madde":"abartılabilmek"},{"madde":"abartılı"},{"madde":"abartılılık"},{"madde":"abartılış"},{"madde":"abartılma"},{"madde":"abartılmak"},{"madde":"abartısız"},{"madde":"abartısızca"},{"madde":"abartısızlık"},{"madde":"abartış"},{"madde":"abartma"},{"madde":"abartmacı"},{"madde":"abartmacılık"},{"madde":"abartmak"},{"madde":"abartmalı"},{"madde":"abartmasız"},{"madde":"abartmasızca"},{"madde":"abasız"},{"madde":"abasızlık"},{"madde":"abaşo"},{"madde":"abat"},{"madde":"abat etmek (veya eylemek)"},{"madde":"abat olmak"},{"madde":"aba vakti yaba, yaba vakti aba"},{"madde":"abayı sermek"},{"madde":"abayı yakmak"},{"madde":"Abaza"},{"madde":"Abazaca"},{"madde":"abazan"},{"madde":"abazan kalmak"},{"madde":"abazanlaşma"},{"madde":"abazanlaşmak"},{"madde":"abazanlık"},{"madde":"Abaza peyniri"},{"madde":"Abbas"},{"madde":"Abdal"},{"madde":"abdal"},{"madde":"abdala \"kar yağıyor\" demişler, \"titremeye hazırım\" demiş"},{"madde":"abdala malum olur"},{"madde":"abdal ata binince bey oldum sanır, şalgam aşa girince yağ oldum sanır"},{"madde":"abdal düğünden, çocuk oyundan usanmaz"},{"madde":"abdalımsı"},{"madde":"abdalın dostluğu köy görününceye kadar"},{"madde":"abdalın karnı doyunca gözü pabucundadır (veya yolda olur)"},{"madde":"abdallık"},{"madde":"abdal tekkede, hacı Mekke'de bulunur"},{"madde":"abdest"},{"madde":"abdest almak"},{"madde":"abdestbozan"},{"madde":"abdestbozan otu"},{"madde":"abdest bozmak"},{"madde":"abdesthane"},{"madde":"abdesti bozulmak"},{"madde":"abdesti gelmek"},{"madde":"abdesti kaçmak"},{"madde":"abdestinde, namazında olmak"},{"madde":"abdestinden şüphesi olmamak"},{"madde":"abdestini vermek"},{"madde":"abdestli"},{"madde":"abdestlik"},{"madde":"abdestlilik"},{"madde":"abdestsiz"},{"madde":"abdestsizlik"},{"madde":"abdestsiz yere basmamak"},{"madde":"abdest tazelemek"},{"madde":"abdiâciz"},{"madde":"abdülleziz"},{"madde":"abe"},{"madde":"Line truncated
Binary file not shown.
+79
View File
@@ -0,0 +1,79 @@
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "ornek" (
"ornek_id" INTEGER NOT NULL,
"anlam_id" INTEGER NOT NULL,
"ornek_sira" INTEGER NOT NULL,
"ornek" TEXT,
"kac" INTEGER NOT NULL,
"yazar_id" INTEGER,
PRIMARY KEY("ornek_id"),
FOREIGN KEY("anlam_id") REFERENCES "anlam"("anlam_id"),
FOREIGN KEY("yazar_id") REFERENCES "yazar"("yazar_id")
);
CREATE TABLE IF NOT EXISTS "anlam" (
"anlam_id" INTEGER NOT NULL,
"madde_id" INTEGER NOT NULL,
"anlam_sira" INTEGER NOT NULL,
"fiil" INTEGER NOT NULL,
"tipkes" INTEGER NOT NULL,
"anlam" TEXT NOT NULL,
"gos" INTEGER NOT NULL,
PRIMARY KEY("anlam_id"),
FOREIGN KEY("madde_id") REFERENCES "madde"("madde_id")
);
CREATE TABLE IF NOT EXISTS "anlam_ozellik" (
"anlam_id" INTEGER NOT NULL,
"ozellik_id" INTEGER NOT NULL,
FOREIGN KEY("ozellik_id") REFERENCES "ozellik"("ozellik_id"),
FOREIGN KEY("anlam_id") REFERENCES "anlam"("anlam_id")
);
CREATE TABLE IF NOT EXISTS "atasozu" (
"madde_id" INTEGER NOT NULL,
"madde" TEXT NOT NULL,
PRIMARY KEY("madde_id"),
FOREIGN KEY("madde_id") REFERENCES "madde"("madde_id")
);
CREATE TABLE IF NOT EXISTS "madde" (
"madde_id" INTEGER NOT NULL,
"kac" INTEGER NOT NULL,
"kelime_no" INTEGER NOT NULL,
"cesit" INTEGER NOT NULL,
"anlam_gor" INTEGER NOT NULL,
"on_taki" TEXT,
"madde" TEXT NOT NULL,
"cesit_say" INTEGER NOT NULL,
"anlam_say" INTEGER NOT NULL,
"taki" TEXT,
"cogul_mu" INTEGER NOT NULL,
"ozel_mi" INTEGER NOT NULL,
"lisan_kodu" INTEGER NOT NULL,
"lisan" TEXT,
"telaffuz" TEXT,
"birlesikler" TEXT,
"font" TEXT,
"madde_duz" TEXT NOT NULL,
"gosterim_tarihi" TEXT,
PRIMARY KEY("madde_id")
);
CREATE TABLE IF NOT EXISTS "ozellik" (
"ozellik_id" INTEGER NOT NULL,
"tur" INTEGER NOT NULL,
"tam_adi" TEXT NOT NULL,
"kisa_adi" TEXT NOT NULL,
"ekno" INTEGER NOT NULL,
PRIMARY KEY("ozellik_id")
);
CREATE TABLE IF NOT EXISTS "yazar" (
"yazar_id" INTEGER NOT NULL,
"tam_adi" TEXT NOT NULL,
"kisa_adi" TEXT NOT NULL,
"ekno" INTEGER NOT NULL,
PRIMARY KEY("yazar_id")
);
CREATE TABLE IF NOT EXISTS "madde_atasozu" (
"madde_id" INTEGER NOT NULL,
"atasozu_madde_id" INTEGER NOT NULL,
FOREIGN KEY("madde_id") REFERENCES "madde"("madde_id"),
FOREIGN KEY("atasozu_madde_id") REFERENCES "atasozu"("madde_id")
);
COMMIT;
+51
View File
@@ -0,0 +1,51 @@
""" Güncel Türkçe Sözlük verilerini kaydeder """
import consts
from pymongo import MongoClient, ReplaceOne
import requests
CLIENT = MongoClient("localhost", 27017)
MONGO_TOPICS = CLIENT.gts.madde
GEVENT_JOBS = []
def get_api_result(word):
""" GTS uzerinden kelimeyi getirir """
headers = {
"User-Agent": "APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)"
}
api_url = "http://www.sozluk.gov.tr/gts"
params = {"ara": word}
result = requests.get(api_url, params=params, headers=headers)
if result.status_code != 200:
print("API error. Status Code: {result.status_code}. Word: {word}")
return None
return result.json()
def get_results():
""" Elimizdeki kelime listesi uzerinden kelimeleri getirir """
for word in consts.WORDS:
maddeler = get_api_result(word)
if "error" in maddeler:
continue
for madde in maddeler:
if not isinstance(madde, dict):
print(f"Wrong type for: {word}. Detail: {madde}")
continue
madde_id = madde["madde_id"]
mongo_obj = madde.copy()
mongo_obj["_id"] = madde_id
MONGO_TOPICS.replace_one({"_id": madde_id}, mongo_obj, upsert=True)
if __name__ == "__main__":
get_results()
+6
View File
@@ -0,0 +1,6 @@
certifi==2019.3.9
chardet==3.0.4
idna==2.8
pymongo==3.8.0
requests==2.22.0
urllib3==1.25.3
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB