51 lines
3.1 KiB
Python
51 lines
3.1 KiB
Python
import json, re, uuid, urllib.request, http.cookiejar
|
|
from pathlib import Path
|
|
|
|
pw = re.search(r'SITEFORGE_ADMIN_PASSWORD=(.+)', Path('.env').read_text()).group(1).strip()
|
|
cj = http.cookiejar.CookieJar()
|
|
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
|
|
BASE = 'http://127.0.0.1:8787'
|
|
sid = '483295c29ea0'
|
|
opener.open(urllib.request.Request(BASE+'/api/auth/login',
|
|
data=json.dumps({'username':'admin','password':pw}).encode(),
|
|
headers={'Content-Type':'application/json'}))
|
|
csrf = json.load(opener.open(BASE+'/api/auth/me'))['csrf']
|
|
|
|
gmaps = 'https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3276.4503537870382!2d113.59874507574851!3d34.79460997288641!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x35d764e14634544d%3A0x2fcba85c7824cd78!2sHe%27Nan+Province+National+University+Science+Park+(East+Zone)+17+Building+Parking+Lot!5e0!3m2!1sen!2sjp!4v1714461571915!5m2!1sen!2sjp'
|
|
|
|
blocks = [
|
|
{'id':uuid.uuid4().hex[:10],'type':'hero','visible':True,
|
|
'title':'Contact Us','subtitle':'GET IN TOUCH',
|
|
'description':'We respond within one business day.',
|
|
'image':'','button':'','href':'','align':'left','layout_variant':'split','image_fit':'cover'},
|
|
{'id':uuid.uuid4().hex[:10],'type':'image_text','visible':True,
|
|
'title':'Sales Team','subtitle':'TALK TO US',
|
|
'description':'Our international sales team helps with product selection, pricing and shipping. Email us for catalogs and quotations.',
|
|
'image':'','image_side':'left','button':'Email Us','href':'mailto:sales@hesupipe.com'},
|
|
{'id':uuid.uuid4().hex[:10],'type':'form','visible':True,
|
|
'title':'Get a Quote',
|
|
'description':'Send us your requirements and our team will reply within 24 hours.',
|
|
'button_text':'Contact Us','button_href':'/contact-us/'},
|
|
{'id':uuid.uuid4().hex[:10],'type':'map','visible':True,
|
|
'title':'Visit Our Office',
|
|
'address':'Henan Province National University Science Park (East Zone) 17 Building, Zhengzhou, China',
|
|
'url':'','embed':gmaps},
|
|
{'id':uuid.uuid4().hex[:10],'type':'faq','visible':True,
|
|
'title':'Frequently Asked Questions',
|
|
'items':[
|
|
{'question':'How can I get a quotation?','answer':'Send us your requirements via email or the inquiry form.'},
|
|
{'question':'What is your MOQ?','answer':'MOQ varies by product. Contact us for details.'},
|
|
{'question':'Do you provide samples?','answer':'Yes, samples available for evaluation.'}]},
|
|
]
|
|
|
|
eid = 'a4992289f61b'
|
|
d = json.load(opener.open(BASE+'/api/sites/'+sid+'/pages/'+eid+'/studio-draft'))
|
|
req = urllib.request.Request(BASE+'/api/sites/'+sid+'/pages/'+eid+'/studio-draft',
|
|
data=json.dumps({'blocks':blocks,'page_template':'contact','layout_mode':'replace','expected_revision':d['revision']}).encode(),
|
|
method='PUT', headers={'Content-Type':'application/json','X-SiteForge-CSRF':csrf})
|
|
r = json.load(opener.open(req))
|
|
req2 = urllib.request.Request(BASE+'/api/sites/'+sid+'/pages/'+eid+'/studio-draft/publish',
|
|
data=json.dumps({'expected_revision':r.get('revision',d['revision']+1)}).encode(), method='POST',
|
|
headers={'Content-Type':'application/json','X-SiteForge-CSRF':csrf})
|
|
print('Contact updated:', json.load(opener.open(req2)).get('published'))
|