-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconfig.py
More file actions
115 lines (99 loc) · 2.85 KB
/
Copy pathconfig.py
File metadata and controls
115 lines (99 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
"""Application configuration for Image Pack Generator."""
import os
# Server
HOST = "0.0.0.0"
PORT = int(os.environ.get("IPG_PORT", 8036))
DEBUG = os.environ.get("IPG_DEBUG", "false").lower() == "true"
# Database
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
DATABASE_PATH = os.path.join(BASE_DIR, "instance", "image_pack_generator.db")
SQLALCHEMY_DATABASE_URI = os.environ.get(
"DATABASE_URL", f"sqlite:///{DATABASE_PATH}"
)
# Application
APP_NAME = "Product Image Auto Pack Generator"
APP_VERSION = "1.0.0"
APP_DESCRIPTION = (
"Automatically generates product image packs with watermarking, "
"resizing, and format optimization for e-commerce channels."
)
# Supported channels
SUPPORTED_CHANNELS = ["amazon", "ebay", "shopify", "etsy", "google_shopping"]
# Channel display names
CHANNEL_LABELS = {
"amazon": "Amazon",
"ebay": "eBay",
"shopify": "Shopify",
"etsy": "Etsy",
"google_shopping": "Google Shopping",
}
# Amazon image requirements
AMAZON_IMAGE_WIDTH = 1000
AMAZON_IMAGE_HEIGHT = 1000
AMAZON_FORMAT = "JPEG"
AMAZON_MAX_FILE_SIZE_KB = 10000
AMAZON_BACKGROUND = "white"
AMAZON_MIN_DPI = 72
AMAZON_WATERMARK_ALLOWED = False
AMAZON_SWATCH_WIDTH = 250
AMAZON_SWATCH_HEIGHT = 250
# eBay image requirements
EBAY_IMAGE_WIDTH = 500
EBAY_IMAGE_HEIGHT = 500
EBAY_FORMAT = "JPEG"
EBAY_MAX_FILE_SIZE_KB = 7000
EBAY_BACKGROUND = "any"
EBAY_MIN_DPI = 72
EBAY_WATERMARK_ALLOWED = True
EBAY_WATERMARK_POSITION = "bottom-right"
EBAY_WATERMARK_OPACITY = 0.3
EBAY_WATERMARK_SIZE_PCT = 15
# Shopify image requirements
SHOPIFY_IMAGE_WIDTH = 2048
SHOPIFY_IMAGE_HEIGHT = 2048
SHOPIFY_FORMAT = "PNG"
SHOPIFY_MAX_FILE_SIZE_KB = 20000
SHOPIFY_BACKGROUND = "transparent"
SHOPIFY_MIN_DPI = 72
SHOPIFY_WATERMARK_ALLOWED = True
SHOPIFY_WATERMARK_POSITION = "center"
SHOPIFY_WATERMARK_OPACITY = 0.15
SHOPIFY_WATERMARK_SIZE_PCT = 25
# Etsy image requirements
ETSY_IMAGE_WIDTH = 2000
ETSY_IMAGE_HEIGHT = 2000
ETSY_FORMAT = "JPEG"
ETSY_MAX_FILE_SIZE_KB = 15000
ETSY_BACKGROUND = "natural"
ETSY_MIN_DPI = 72
ETSY_WATERMARK_ALLOWED = True
ETSY_WATERMARK_POSITION = "bottom-left"
ETSY_WATERMARK_OPACITY = 0.2
ETSY_WATERMARK_SIZE_PCT = 12
# Google Shopping image requirements
GOOGLE_IMAGE_WIDTH = 800
GOOGLE_IMAGE_HEIGHT = 800
GOOGLE_FORMAT = "JPEG"
GOOGLE_MAX_FILE_SIZE_KB = 16000
GOOGLE_BACKGROUND = "white"
GOOGLE_MIN_DPI = 72
GOOGLE_WATERMARK_ALLOWED = False
# Watermark defaults
DEFAULT_WATERMARK_TEXT = "SAMPLE"
DEFAULT_WATERMARK_FONT_SIZE = 24
DEFAULT_WATERMARK_COLOR = "#000000"
# Processing
MAX_IMAGES_PER_PRODUCT = 20
MAX_CHANNELS_PER_PACK = 10
THUMBNAIL_WIDTH = 150
THUMBNAIL_HEIGHT = 150
SUPPORTED_INPUT_FORMATS = ["JPEG", "PNG", "WEBP", "TIFF", "BMP"]
SUPPORTED_OUTPUT_FORMATS = ["JPEG", "PNG", "WEBP"]
# Simulation constants
SIMULATED_PROCESSING_TIME_MS = 250
SIMULATED_COMPRESSION_RATIO = 0.85
# Pagination
DEFAULT_PAGE_SIZE = 20
MAX_PAGE_SIZE = 100
# Testing
TESTING = False