mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-10-25 11:17:28 +02:00 
			
		
		
		
	Metrics changes (#2273)
* Update downloader.js * Update downloader.js * Update common.html * Update downloader.js
This commit is contained in:
		
							parent
							
								
									a6ae3734ca
								
							
						
					
					
						commit
						d0d6a70250
					
				| @ -96,14 +96,31 @@ | |||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|  |   async function getPDFPageCount(file) { | ||||||
|  |     try { | ||||||
|  |       const arrayBuffer = await file.arrayBuffer(); | ||||||
|  |       pdfjsLib.GlobalWorkerOptions.workerSrc = '/pdfjs-legacy/pdf.worker.mjs' | ||||||
|  |       const pdf = await pdfjsLib.getDocument({ data: arrayBuffer }).promise; | ||||||
|  |       return pdf.numPages; | ||||||
|  |     } catch (error) { | ||||||
|  |       console.error('Error getting PDF page count:', error); | ||||||
|  |       return null; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |    | ||||||
|   async function handleSingleDownload(url, formData, isMulti = false, isZip = false) { |   async function handleSingleDownload(url, formData, isMulti = false, isZip = false) { | ||||||
|  |     const startTime = performance.now(); | ||||||
|  |     const file = formData.get('fileInput'); | ||||||
|  |     let success = false; | ||||||
|  |     let errorMessage = null; | ||||||
|  |      | ||||||
|     try { |     try { | ||||||
|       const response = await fetch(url, { method: "POST", body: formData }); |       const response = await fetch(url, { method: "POST", body: formData }); | ||||||
|       const contentType = response.headers.get("content-type"); |       const contentType = response.headers.get("content-type"); | ||||||
| 
 | 
 | ||||||
|       if (!response.ok) { |       if (!response.ok) { | ||||||
|  |         errorMessage = response.status; | ||||||
|         if (response.status === 401) { |         if (response.status === 401) { | ||||||
|           // Handle 401 Unauthorized error
 |  | ||||||
|           showSessionExpiredPrompt(); |           showSessionExpiredPrompt(); | ||||||
|           return; |           return; | ||||||
|         } |         } | ||||||
| @ -118,6 +135,8 @@ | |||||||
|       let filename = getFilenameFromContentDisposition(contentDisposition); |       let filename = getFilenameFromContentDisposition(contentDisposition); | ||||||
| 
 | 
 | ||||||
|       const blob = await response.blob(); |       const blob = await response.blob(); | ||||||
|  |       success = true; | ||||||
|  |        | ||||||
|       if (contentType.includes("application/pdf") || contentType.includes("image/")) { |       if (contentType.includes("application/pdf") || contentType.includes("image/")) { | ||||||
|         clearFileInput(); |         clearFileInput(); | ||||||
|         return handleResponse(blob, filename, !isMulti, isZip); |         return handleResponse(blob, filename, !isMulti, isZip); | ||||||
| @ -127,9 +146,25 @@ | |||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|  |       success = false; | ||||||
|  |       errorMessage = error.message; | ||||||
|       clearFileInput(); |       clearFileInput(); | ||||||
|       console.error("Error in handleSingleDownload:", error); |       console.error("Error in handleSingleDownload:", error); | ||||||
|       throw error; |       throw error; | ||||||
|  |     } finally { | ||||||
|  |       const processingTime = performance.now() - startTime; | ||||||
|  |        | ||||||
|  |       // Capture analytics
 | ||||||
|  |       const pageCount = file && file.type === 'application/pdf' ? await getPDFPageCount(file) : null; | ||||||
|  |        | ||||||
|  |       posthog.capture('file_processing', { | ||||||
|  |         success: success, | ||||||
|  |         file_type: file ? file.type || 'unknown' : 'unknown', | ||||||
|  |         file_size: file ? file.size : 0, | ||||||
|  |         processing_time: processingTime, | ||||||
|  |         error_message: errorMessage, | ||||||
|  |         pdf_pages: pageCount | ||||||
|  |       }); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -201,6 +201,7 @@ | |||||||
|                     window.stirlingPDF.error = /*[[#{error}]]*/ "Error"; |                     window.stirlingPDF.error = /*[[#{error}]]*/ "Error"; | ||||||
|                   })(); |                   })(); | ||||||
|                 </script> |                 </script> | ||||||
|  |                 <script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script> | ||||||
|                 <script th:src="@{'/js/downloader.js'}"></script> |                 <script th:src="@{'/js/downloader.js'}"></script> | ||||||
| 
 | 
 | ||||||
|                 <div class="custom-file-chooser" th:attr="data-bs-unique-id=${name}, data-bs-element-id=${name+'-input'}, data-bs-files-selected=#{filesSelected}, data-bs-pdf-prompt=#{pdfPrompt}"> |                 <div class="custom-file-chooser" th:attr="data-bs-unique-id=${name}, data-bs-element-id=${name+'-input'}, data-bs-files-selected=#{filesSelected}, data-bs-pdf-prompt=#{pdfPrompt}"> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user