| 
														
															@@ -65,7 +65,7 @@ function formatPlainText(text: string): SafeString { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 class TextFormatter { 
														 | 
														
														 | 
														
															 class TextFormatter { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   private splices: { text: StringLike, indices: [number, number] }[]; 
														 | 
														
														 | 
														
															   private splices: { text: StringLike, indices: [number, number] }[]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  private media: { type: 'video' | 'img', url: string, link?: string }[]; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  private media: { type: 'video' | 'img', url: string, loop: boolean, link?: string }[]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   private characters: string[]; 
														 | 
														
														 | 
														
															   private characters: string[]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   constructor(readonly tweet: Tweet, readonly useProxy: boolean) { 
														 | 
														
														 | 
														
															   constructor(readonly tweet: Tweet, readonly useProxy: boolean) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -97,7 +97,7 @@ class TextFormatter { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     for (const item of media) { 
														 | 
														
														 | 
														
															     for (const item of media) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (item.type === 'photo') { 
														 | 
														
														 | 
														
															       if (item.type === 'photo') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const url = new URL(item.media_url_https).toString(); 
														 | 
														
														 | 
														
															         const url = new URL(item.media_url_https).toString(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        this.media.push({ type: 'img', url }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.media.push({ type: 'img', url, loop: false }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } else if (item.video_info !== undefined) { 
														 | 
														
														 | 
														
															       } else if (item.video_info !== undefined) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let max = -1; 
														 | 
														
														 | 
														
															         let max = -1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let maxUrl: string | undefined = undefined; 
														 | 
														
														 | 
														
															         let maxUrl: string | undefined = undefined; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -110,12 +110,13 @@ class TextFormatter { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             maxUrl = variant.url; 
														 | 
														
														 | 
														
															             maxUrl = variant.url; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           } 
														 | 
														
														 | 
														
															           } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const loop = item.type === 'animated_gif'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (maxUrl !== undefined) { 
														 | 
														
														 | 
														
															         if (maxUrl !== undefined) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           const url = new URL(maxUrl).toString(); 
														 | 
														
														 | 
														
															           const url = new URL(maxUrl).toString(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.media.push({ type: 'video', url }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          this.media.push({ type: 'video', url, loop }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } else { 
														 | 
														
														 | 
														
															         } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           const url = new URL(item.media_url_https).toString(); 
														 | 
														
														 | 
														
															           const url = new URL(item.media_url_https).toString(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.media.push({ type: 'img', url, link: item.expanded_url }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          this.media.push({ type: 'img', url, link: item.expanded_url, loop }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -172,7 +173,7 @@ class TextFormatter { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       index = indices[1]; 
														 | 
														
														 | 
														
															       index = indices[1]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     html.push(formatPlainText(this.getRange(index))); 
														 | 
														
														 | 
														
															     html.push(formatPlainText(this.getRange(index))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    for (const { type, url, link } of this.media) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    for (const { type, url, link, loop } of this.media) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       html.push(tag('br')); 
														 | 
														
														 | 
														
															       html.push(tag('br')); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       html.push(tag('br')); 
														 | 
														
														 | 
														
															       html.push(tag('br')); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       const src = this.useProxy ? buildProxyUrl(url) : url; 
														 | 
														
														 | 
														
															       const src = this.useProxy ? buildProxyUrl(url) : url; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -181,7 +182,7 @@ class TextFormatter { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           tag('img', { loading: 'lazy', src }), 
														 | 
														
														 | 
														
															           tag('img', { loading: 'lazy', src }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ])); 
														 | 
														
														 | 
														
															         ])); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } else if (type === 'video') { 
														 | 
														
														 | 
														
															       } else if (type === 'video') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        html.push(tag('video', { controls: '', src })); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        html.push(tag('video', { controls: '', src, loop: `${loop}` })); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return joinChildren(html); 
														 | 
														
														 | 
														
															     return joinChildren(html); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -207,7 +208,7 @@ blockquote { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 div { 
														 | 
														
														 | 
														
															 div { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   max-width: 600px; 
														 | 
														
														 | 
														
															   max-width: 600px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-img { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+img, video { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   max-width: 100%; 
														 | 
														
														 | 
														
															   max-width: 100%; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 `; 
														 | 
														
														 | 
														
															 `; 
														 |