0.0.1 init, main page prepare

This commit is contained in:
SDE
2023-11-16 14:38:44 +03:00
parent 894ee6d750
commit 74f7bbb24b
78 changed files with 6198 additions and 21 deletions

View File

@@ -0,0 +1,243 @@
import json
import project_sets
from collections import OrderedDict
def get_ld_logo():
data = {
"@context": "https://schema.org",
"@type": "Organization",
"url": project_sets.domain,
"logo": project_sets.logo
}
return data
def get_ld_company(offices):
try:
main_office = offices.get(main_office=True)
except:
main_office = offices[0]
data = {
"@context": "https://schema.org",
"@type": "LocalBusiness",
"logo": project_sets.logo,
}
ld_for_main_office = get_ld_office(main_office)
data.update(ld_for_main_office)
departments = []
for office in offices:
if office == main_office:
continue
departments.append(get_ld_office(office))
# if departments:
# data.update({
# 'department': departments
# })
return json.dumps(data)
def get_ld_office(office):
try:
phones = office.phones()
except:
phones = []
if not phones:
try:
phones = office.rel_contacts_for_office
except:
phones = []
data = {
"name": office.name,
}
# На каждой странице (с разметкой или без нее) должно присутствовать хотя бы одно изображение. Робот Google выберет лучшее изображение для показа в результатах поиска с учетом соотношения сторон и разрешения.
# URL изображений должны быть доступны для сканирования и индексирования. Проверить, есть ли у поискового робота Google доступ к URL вашего контента, можно с помощью инструмента, описанного в этой статье.
# Изображения должны соответствовать размеченному контенту.
# Допускаются только графические файлы форматов, совместимых с Google Картинками.
# Предоставьте несколько изображений в высоком разрешении (не менее 50 000 пикселей по произведению ширины и высоты) со следующими соотношениями сторон: 16 × 9, 4 × 3 и 1 × 1.
data.update({
"image": [
project_sets.logo,
]
})
# data.update({
# "@type": "Store",
# })
# не обязательно!
# AnimalShelter
# ArchiveOrganization
# AutomotiveBusiness
# ChildCare
# Dentist
# DryCleaningOrLaundry
# EmergencyService
# EmploymentAgency
# EntertainmentBusiness
# FinancialService
# FoodEstablishment
# GovernmentOffice
# HealthAndBeautyBusiness
# HomeAndConstructionBusiness
# InternetCafe
# LegalService
# Library
# LodgingBusiness
# MedicalBusiness
# ProfessionalService
# RadioStation
# RealEstateAgent
# RecyclingCenter
# SelfStorage
# ShoppingCenter
# SportsActivityLocation
# Store
# TelevisionStation
# TouristInformationCenter
# TravelAgency
i_Dict = {
"address": {
"@type": "PostalAddress",
"streetAddress": office.address,
"addressLocality": office.city,
# "addressRegion": "CA",
# "postalCode": "95129",
# "addressCountry": "US"
},
}
if phones:
i_Dict["address"].update({
"telephone": '{0}{1}'.format(phones[0].prefix, phones[0].nomber_phone),
})
data.update(i_Dict)
gps_longitude = getattr(office, 'gps_longitude', None)
gps_latitude = getattr(office, 'gps_latitude', None)
if not gps_longitude:
gps_longitude = getattr(project_sets, 'gps_longitude', None)
if not gps_latitude:
gps_latitude = getattr(project_sets, 'gps_latitude', None)
if gps_longitude and gps_latitude:
i_Dict = {
"geo": {
"@type": "GeoCoordinates",
"latitude": gps_latitude,
"longitude": gps_longitude
},
}
data.update(i_Dict)
data.update({
"url": project_sets.domain
})
# "foundingDate": "2005-02-07", # дата основания
company_reference_links = getattr(project_sets, 'company_reference_links')
if company_reference_links:
data.update({
"sameAs": company_reference_links
})
priceRange = getattr(office, 'priceRange', '$')
if priceRange:
data.update({
"priceRange": priceRange
})
work_time_from = getattr(office, 'work_time_from', None)
if not work_time_from:
work_time_from = getattr(project_sets, 'work_time_from', '9:00')
work_time_to = getattr(office, 'work_time_to', None)
if not work_time_to:
work_time_to = getattr(project_sets, 'work_time_to', '18:00')
i_Dict = {
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"https://schema.org/Monday",
"https://schema.org/Tuesday",
"https://schema.org/Wednesday",
"https://schema.org/Thursday",
"https://schema.org/Friday",
# "https://schema.org/Saturday"
],
"opens": work_time_from,
"closes": work_time_to
},
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "Sunday",
# "opens": "08:00",
# "closes": "23:00"
# }
],
}
# i_Dict = {
# "openingHoursSpecification": [
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "https://schema.org/Monday",
# "opens": work_time_from,
# "closes": work_time_to
# },
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "https://schema.org/Tuesday",
# "opens": work_time_from,
# "closes": work_time_to
# },
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "https://schema.org/Wednesday",
# "opens": work_time_from,
# "closes": work_time_to
# },
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "https://schema.org/Thursday",
# "opens": work_time_from,
# "closes": work_time_to
# },
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "https://schema.org/Friday",
# "opens": work_time_from,
# "closes": work_time_to
# },
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "https://schema.org/Saturday",
# "opens": work_time_from,
# "closes": work_time_to
# },
# {
# "@type": "OpeningHoursSpecification",
# "dayOfWeek": "https://schema.org/Sunday",
# "opens": work_time_from,
# "closes": work_time_to
# },
# ],
# }
data.update(i_Dict)
return data