ysn-rfd/text-dataset-tiny-code-script-py-format
USED of tahamajs/medicine_ds_persian for .parquet file USED of Alijafarixcs2/persian-it-llama2-2k for .parquet file USED of Abirate/english_quotes for .jsonl file NEW FILES (05/12/2025) NEW FILES (12/26/2025) NEW FILES (02/15/2026)
31.6k
1from PIL import Image, ImageDraw, ImageFont
2import math
3import qrcode
4import hashlib
5
6# ===== Certificate Info =====
7name = "Yasin"
8user_id = "YSNRFD"
9membership_date = "April 1, 2023"
10issued_date = "June 28, 2025"
11certificate_id = "OPENAI-YSN-APR2023-CERT1001"
12signed_by = "ChatGPT-4o"
13model_id = "GPT4O-REP-TRUST-2025"
14issuer = "OpenAI, Inc."
15
16# Prepare data string for digital signature
17data_string = f"""
18Name: {name}
19User ID: {user_id}
20Membership Date: {membership_date}
21Issued Date: {issued_date}
22Certificate ID: {certificate_id}
23Signed By: {signed_by}
24Model ID: {model_id}
25Issuer: {issuer}
26"""
27
28# Generate SHA-256 digital signature
29digital_signature = hashlib.sha256(data_string.encode('utf-8')).hexdigest()
30verification_code = f"VER-{digital_signature[:8].upper()}-{certificate_id[-4:]}"
31
32# Create QR code from digital signature
33qr = qrcode.QRCode(box_size=7, border=3)
34qr.add_data(digital_signature)
35qr.make(fit=True)
36qr_img = qr.make_image(fill_color="black", back_color="white").convert("RGBA")
37
38# Load fonts with fallback
39try:
40 font_title = ImageFont.truetype("arialbd.ttf", 30)
41 font_header = ImageFont.truetype("arialbd.ttf", 18)
42 font_text = ImageFont.truetype("arial.ttf", 16)
43 font_small = ImageFont.truetype("arial.ttf", 14)
44except:
45 font_title = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 30)
46 font_header = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 18)
47 font_text = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 16)
48 font_small = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 14)
49
50# Create certificate canvas
51width, height = 850, 520
52certificate = Image.new("RGB", (width, height), "#fffefa")
53draw = ImageDraw.Draw(certificate)
54
55# Background rectangle and divider line
56draw.rectangle([(15, 15), (width-15, height-15)], outline="#555555", width=3)
57draw.line([(20, 80), (width-20, 80)], fill="#999999", width=2)
58
59# Title text
60draw.text((40, 30), "OpenAI – Certificate of Membership", font=font_title, fill="#222222")
61
62# Certificate info lines
63info_lines = [
64 f"Name: {name}",
65 f"User ID: {user_id}",
66 f"Membership Date: {membership_date}",
67 f"Issued Date: {issued_date}",
68 f"Certificate ID: {certificate_id}",
69 f"Signed By: {signed_by}",
70 f"Model ID: {model_id}",
71 f"Issuer: {issuer}",
72]
73
74y_text = 100
75for line in info_lines:
76 draw.text((40, y_text), line, font=font_text, fill="#333333")
77 y_text += 30
78
79# Verification code
80draw.text((40, y_text + 10), f"Verification Code: {verification_code}", font=font_header, fill="#444444")
81
82# Digital signature label and text
83draw.text((40, y_text + 50), "SHA-256 Digital Signature:", font=font_header, fill="#222222")
84
85sig_1 = digital_signature[:len(digital_signature)//2]
86sig_2 = digital_signature[len(digital_signature)//2:]
87draw.text((40, y_text + 80), sig_1, font=font_small, fill="#555555")
88draw.text((40, y_text + 100), sig_2, font=font_small, fill="#555555")
89
90# Paste QR code on bottom right
91qr_size = 150
92qr_position = (width - qr_size - 40, height - qr_size - 40)
93qr_img = qr_img.resize((qr_size, qr_size), Image.Resampling.LANCZOS)
94certificate.paste(qr_img, qr_position, qr_img)
95
96# ==== Draw a professional OpenAI seal with logo inside ====
97
98# Load logo PNG (converted from your SVG to PNG, size approx 800x800)
99try:
100 logo = Image.open("openai_seal.png").convert("RGBA")
101except FileNotFoundError:
102 print("⚠️ فایل لوگوی my_logo.png پیدا نشد! لطفا لوگوی مناسب کنار اسکریپت قرار دهید.")
103 logo = None
104
105seal_diameter = 160
106seal = Image.new("RGBA", (seal_diameter, seal_diameter), (255, 255, 255, 0))
107seal_draw = ImageDraw.Draw(seal)
108
109center = seal_diameter // 2
110
111# Outer thick ring
112seal_draw.ellipse(
113 [(5, 5), (seal_diameter - 5, seal_diameter - 5)],
114 outline=(0, 51, 102, 255), width=8
115)
116
117# Inner thin ring
118seal_draw.ellipse(
119 [(20, 20), (seal_diameter - 20, seal_diameter - 20)],
120 outline=(0, 102, 204, 255), width=3
121)
122
123# Radial lines for decoration
124num_rays = 24
125for i in range(num_rays):
126 angle = (360 / num_rays) * i
127 start_x = center + int((seal_diameter//2 - 20) * math.cos(math.radians(angle)))
128 start_y = center + int((seal_diameter//2 - 20) * math.sin(math.radians(angle)))
129 end_x = center + int((seal_diameter//2 - 5) * math.cos(math.radians(angle)))
130 end_y = center + int((seal_diameter//2 - 5) * math.sin(math.radians(angle)))
131 seal_draw.line([(start_x, start_y), (end_x, end_y)], fill=(0, 51, 102, 180), width=2)
132
133# Paste resized logo in center if available
134if logo:
135 max_logo_size = seal_diameter - 60 # حدود 100x100
136 logo = logo.resize((max_logo_size, max_logo_size), Image.Resampling.LANCZOS)
137 logo_pos = (center - max_logo_size // 2, center - max_logo_size // 2)
138 seal.paste(logo, logo_pos, logo)
139
140# Center text below logo (اختیاری)
141center_text = "Official Seal"
142bbox = seal_draw.textbbox((0, 0), center_text, font=font_small)
143w = bbox[2] - bbox[0]
144h = bbox[3] - bbox[1]
145seal_draw.text(((seal_diameter - w)//2, seal_diameter - h - 15), center_text, font=font_small, fill=(0, 51, 102, 200))
146
147# Paste seal on top right corner of certificate
148certificate.paste(seal, (width - seal_diameter - 40, 40), seal)
149
150# Save certificate image
151certificate.save("openai_certificate_yasin_en_2.png")
152print("✅ Certificate image created: openai_certificate_yasin_en_2.png")
153 