mirror of https://github.com/Ruslan-Isaev/modules
Изменил библиотеку для работы со штрих кодами. Увеличена скорость генерации штрихкодов
parent
c9aa1a6843
commit
2d170f39e0
29
barcode.py
29
barcode.py
|
@ -1,20 +1,21 @@
|
||||||
version = (1, 0, 0)
|
__version__ = (2, 0, 0)
|
||||||
|
|
||||||
# meta developer: @RUIS_VlP
|
# meta developer: @RUIS_VlP
|
||||||
# requires: treepoem pillow
|
# requires: python-barcode[images]
|
||||||
|
import barcode
|
||||||
|
from barcode.writer import ImageWriter
|
||||||
from .. import loader, utils
|
from .. import loader, utils
|
||||||
import treepoem
|
|
||||||
import uuid
|
import uuid
|
||||||
import os
|
import os
|
||||||
from PIL import Image, ImageOps
|
|
||||||
|
|
||||||
async def generate_barcode(data, filename, border_size=20):
|
async def generate_barcode(data, filename):
|
||||||
barcode = treepoem.generate_barcode(
|
options = {
|
||||||
barcode_type="code128",
|
'write_text': False,
|
||||||
data=data
|
'quiet_zone': 2,
|
||||||
)
|
'module_height': 15.0
|
||||||
barcode_with_border = ImageOps.expand(barcode, border=border_size, fill="white")
|
}
|
||||||
barcode_with_border.save(filename)
|
code128 = barcode.get('code128', data, writer=ImageWriter())
|
||||||
|
code128.save(filename, options)
|
||||||
|
|
||||||
@loader.tds
|
@loader.tds
|
||||||
class BarcodeGeneratorMod(loader.Module):
|
class BarcodeGeneratorMod(loader.Module):
|
||||||
|
@ -28,8 +29,10 @@ class BarcodeGeneratorMod(loader.Module):
|
||||||
async def barcodecmd(self, message):
|
async def barcodecmd(self, message):
|
||||||
"""<код> - генерирует штрих-код"""
|
"""<код> - генерирует штрих-код"""
|
||||||
args = utils.get_args_raw(message)
|
args = utils.get_args_raw(message)
|
||||||
|
if not args:
|
||||||
|
args = " "
|
||||||
randuuid = str(uuid.uuid4())
|
randuuid = str(uuid.uuid4())
|
||||||
filename = f"{randuuid}.png"
|
filename = f"{randuuid}.png"
|
||||||
await generate_barcode(args, filename)
|
await generate_barcode(args, randuuid)
|
||||||
await utils.answer_file(message, filename, caption=args)
|
await utils.answer_file(message, filename, caption=args)
|
||||||
os.remove(filename)
|
os.remove(filename)
|
Loading…
Reference in New Issue