|
14 | 14 | from django.conf import settings |
15 | 15 | from django.core.files.base import ContentFile |
16 | 16 | from django.core.files.storage import FileSystemStorage |
| 17 | +from django.utils.html import escape |
17 | 18 | from sortedm2m.fields import SortedManyToManyField |
18 | 19 | from sorl.thumbnail import ImageField, get_thumbnail |
19 | 20 | from gsuser.models import User |
@@ -202,7 +203,7 @@ def create_screenshot_file(self, is_thumbnail=False): |
202 | 203 | def image_twitter(self): |
203 | 204 | if bool(self.screenshot): |
204 | 205 | return get_thumbnail( |
205 | | - self.screenshot, '1200x630', |
| 206 | + self.screenshot, '1200x600', |
206 | 207 | crop='bottom', format='PNG' |
207 | 208 | ) |
208 | 209 | return '' |
@@ -265,12 +266,12 @@ def create_meta(self, storage): |
265 | 266 | domain = Site.objects.get_current().domain |
266 | 267 | proto = 'https' if settings.USE_HTTPS else 'http' |
267 | 268 | meta = f''' |
268 | | -<meta property="og:title" content="{self.title_data}"> |
269 | | -<meta property="og:description" content="{self.description_data}"> |
| 269 | +<meta property="og:title" content="{ escape(self.title_data) }"> |
| 270 | +<meta property="og:description" content="{ escape(self.description_data) }"> |
270 | 271 | <meta property="og:type" content="website"> |
271 | | -<meta property="og:url" content="{proto}://{domain}{self.get_absolute_url()}"> |
272 | | -<meta property="og:image" content="{proto}://{domain}/{self.image_facebook()}"> |
273 | | -<meta name="twitter:image" content="{proto}://{domain}/{self.image_twitter()}"> |
| 272 | +<meta property="og:url" content="{ proto }://{ domain }{ self.get_absolute_url() }"> |
| 273 | +<meta property="og:image" content="{ proto }://{ domain }/{ self.image_facebook() }"> |
| 274 | +<meta name="twitter:image" content="{ proto }://{ domain }/{ self.image_twitter() }"> |
274 | 275 | ''' |
275 | 276 | storage.save(f'snapshot-meta/{self.id}.html', ContentFile(meta)) |
276 | 277 |
|
|
0 commit comments