@@ -303,6 +303,24 @@ export class SQLDatabase {
303303 return this . enhanceMessageResponses < typeof messages [ number ] > ( allMessages ) ;
304304 } ;
305305
306+ private addDateToMessage = ( message : {
307+ date ?: number | null ;
308+ date_delivered ?: number | null ;
309+ date_read ?: number | null ;
310+ date_obj ?: Date ;
311+ date_obj_delivered ?: Date ;
312+ date_obj_read ?: Date ;
313+ } ) => {
314+ if ( message . date ) {
315+ message . date_obj = new Date ( message . date / 1000000 + 978307200000 ) ;
316+ }
317+ if ( message . date_delivered ) {
318+ message . date_obj_delivered = new Date ( message . date_delivered / 1000000 + 978307200000 ) ;
319+ }
320+ if ( message . date_read ) {
321+ message . date_obj_read = new Date ( message . date_read / 1000000 + 978307200000 ) ;
322+ }
323+ } ;
306324 private enhanceMessageResponses = async < T extends JoinedMessageType = JoinedMessageType > ( messages : T [ ] ) => {
307325 type EnhancedMessage = T & {
308326 attachmentMessages ?: EnhancedMessage [ ] ;
@@ -315,15 +333,7 @@ export class SQLDatabase {
315333
316334 await Promise . all (
317335 enhancedMessages . map ( async ( message ) => {
318- if ( message . date ) {
319- message . date_obj = new Date ( message . date / 1000000 + 978307200000 ) ;
320- }
321- if ( message . date_delivered ) {
322- message . date_obj_delivered = new Date ( message . date_delivered / 1000000 + 978307200000 ) ;
323- }
324- if ( message . date_read ) {
325- message . date_obj_read = new Date ( message . date_read / 1000000 + 978307200000 ) ;
326- }
336+ this . addDateToMessage ( message ) ;
327337 if ( message . text ) {
328338 message . text = message . text . replace ( / [ \u{FFFC} - \u{FFFD} ] / gu, "" ) ;
329339 }
@@ -608,6 +618,16 @@ export class SQLDatabase {
608618 topEmojis,
609619 } ;
610620 } ;
621+
622+ getMessageDates = async ( year : number , chatIds ?: number [ ] ) => {
623+ const query = this . getMessageQueryByYear ( year , chatIds ) . select ( "date" ) ;
624+ const data = await query . execute ( ) ;
625+ for ( const message of data ) {
626+ // maybe this is slow and its better not to pay serialization cost? idk
627+ this . addDateToMessage ( message ) ;
628+ }
629+ return data [ 0 ] ;
630+ } ;
611631}
612632
613633const db = new SQLDatabase ( ) ;
0 commit comments