@yrpri/api 9.0.139 → 9.0.141
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/assistants/agentAssistant.js +4 -3
- package/agents/assistants/baseAssistant.js +72 -71
- package/agents/assistants/baseAssistantWithVoice.js +6 -5
- package/agents/assistants/modes/agentDirectConnection.js +8 -7
- package/agents/assistants/modes/agentSelectionMode.js +2 -1
- package/agents/assistants/modes/baseAssistantMode.js +3 -2
- package/agents/assistants/modes/tools/agentTools.js +11 -10
- package/agents/assistants/modes/tools/loginTools.js +7 -6
- package/agents/assistants/modes/tools/models/agents.js +6 -5
- package/agents/assistants/modes/tools/models/subscriptions.js +7 -6
- package/agents/assistants/modes/tools/navigationTools.js +7 -6
- package/agents/assistants/modes/tools/subscriptionTools.js +12 -11
- package/agents/assistants/modes/tools/workflowConverstationTools.js +7 -6
- package/agents/assistants/voiceAssistant.js +45 -44
- package/agents/controllers/agentProductController.js +8 -7
- package/agents/controllers/agentSubscriptionController.js +13 -12
- package/agents/controllers/assistantsController.js +45 -44
- package/agents/controllers/policySynthAgents.js +33 -32
- package/agents/managers/emailInvitesManager.js +4 -3
- package/agents/managers/newAiModelSetup.js +46 -45
- package/agents/managers/notificationAgentQueueManager.js +55 -54
- package/agents/managers/subscriptionManager.js +24 -23
- package/agents/models/agentProduct.js +2 -1
- package/agents/models/agentProductBoosterPurchase.js +2 -1
- package/agents/models/testData/createEvolyAgentProduct.js +7 -6
- package/agents/models/testData/old/updateAgentWorkflowConfiguration.js +5 -4
- package/agents/models/testData/updateAgentWorkflowConfiguration.js +5 -4
- package/agents/tools/setTemplateWorkflowCommunityId.js +6 -5
- package/app.d.ts +2 -1
- package/app.js +60 -34
- package/authorization.cjs +4 -4
- package/controllers/allOurIdeas.js +45 -44
- package/controllers/groups.cjs +4 -9
- package/controllers/images.cjs +8 -8
- package/controllers/index.cjs +1 -1
- package/controllers/points.cjs +1 -1
- package/controllers/posts.cjs +3 -3
- package/deleteUnwantedDeclerations.cjs +6 -5
- package/models/community.cjs +1 -1
- package/models/domain.cjs +7 -7
- package/models/image.cjs +2 -2
- package/models/index.cjs +8 -4
- package/models/post.cjs +10 -10
- package/models/user.cjs +1 -1
- package/models/video.cjs +4 -4
- package/package.json +5 -5
- package/scripts/addRatingUsersToGroup.js +1 -1
- package/scripts/addUserToOrganization.js +8 -8
- package/scripts/agents/changeModelForWorkflowGroupTemplate.js +13 -12
- package/scripts/agents/generateAgentWorkflowTemplateFromAgentClass.js +5 -4
- package/scripts/analyseRatingsForCommunity.js +2 -2
- package/scripts/analyzeAndFixBrokenPointUsers.js +3 -3
- package/scripts/analyzeEndorsementsByCountry.js +7 -7
- package/scripts/analyzePostsForCommunity.js +1 -1
- package/scripts/bulkStatusUpdates/listUpdates.js +2 -2
- package/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +5 -5
- package/scripts/bulkStatusUpdates/performUpdate.js +9 -9
- package/scripts/bulkStatusUpdates/performUpdateForGroup.cjs +12 -11
- package/scripts/bulkStatusUpdates/performUpdateForStatus.js +15 -15
- package/scripts/change/changeVideoAspectTo.js +3 -3
- package/scripts/change/setUseNewVersion.cjs +5 -4
- package/scripts/changeCommunityGroupcount.js +3 -3
- package/scripts/changeCommunityPostCount.js +3 -3
- package/scripts/changeGroupPostCount.js +3 -3
- package/scripts/changeLanguage.js +4 -4
- package/scripts/changeOfficalStatus.js +3 -3
- package/scripts/cleanups/deleteAnonNotifications.cjs +8 -7
- package/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +8 -8
- package/scripts/cleanups/deleteYearOldNotifications.cjs +6 -5
- package/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +5 -5
- package/scripts/clearAllEndorsementInGroup.js +5 -5
- package/scripts/cloning/clearUsersForCommunitiesFromUrl.js +3 -3
- package/scripts/cloning/cloneFromUrlScript.js +4 -4
- package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +6 -6
- package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +3 -3
- package/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +2 -2
- package/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +2 -2
- package/scripts/cloning/copyCommunityToDomainWithEverything.js +2 -2
- package/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +3 -3
- package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +3 -3
- package/scripts/cloning/copyPostToGroupOld.js +12 -12
- package/scripts/cloning/copyPostVideosFromURL.js +3 -3
- package/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +2 -2
- package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +7 -7
- package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/setAdminsFromURL.js +5 -5
- package/scripts/cloning/setExternalIdsFromURL.js +3 -3
- package/scripts/countCommunity.js +11 -11
- package/scripts/countCommunityUsers.js +4 -4
- package/scripts/countDelayedNotifications.js +3 -3
- package/scripts/countGroup.js +11 -11
- package/scripts/countStuff.js +3 -3
- package/scripts/countUniqueVotersInAGroup.js +3 -3
- package/scripts/createInvitesAndShow.js +2 -2
- package/scripts/database/sync_database.js +2 -2
- package/scripts/database/sync_dev_database.js +3 -3
- package/scripts/debugNotifications.js +5 -5
- package/scripts/deleteAllNewsFeeds.js +2 -2
- package/scripts/deleteCategory.js +1 -1
- package/scripts/deleteOldAppActivities.js +5 -4
- package/scripts/deletePostContactDataForCommunity.js +5 -4
- package/scripts/destroy/destroy_all_but_one_domain.js +59 -59
- package/scripts/displayAuthorForPost.js +1 -1
- package/scripts/domains/createDomain.js +5 -4
- package/scripts/domains/importDomainsFromXls.js +7 -6
- package/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +2 -2
- package/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +9 -9
- package/scripts/exportAllStatusChanges.js +5 -5
- package/scripts/exportEndorsementsForCommunity.js +5 -5
- package/scripts/exportPointQualitiesForCommunity.js +5 -5
- package/scripts/exportPostsAndPointsForCommunity.js +9 -9
- package/scripts/exportPostsDataSetForDomain.js +12 -12
- package/scripts/exportPostsForGroup.js +7 -7
- package/scripts/exportRatingsForPost.js +2 -2
- package/scripts/exportUserEndorsementsWithUserAnalysis.js +6 -6
- package/scripts/exportUsersForCommunity.js +3 -3
- package/scripts/exportUsersForDomain.js +3 -3
- package/scripts/exportUsersForGroup.js +3 -3
- package/scripts/exports/ratingDistribution.js +6 -6
- package/scripts/exports/whoEndorsedWhatByCommunity.js +2 -2
- package/scripts/findUnusedClientImports.js +2 -2
- package/scripts/fixAllPostPointCounts.js +1 -1
- package/scripts/fixAnonNotificationsSettings.js +5 -5
- package/scripts/fixCountKopavogur.js +1 -1
- package/scripts/fixEndorsementsAfterCopyPostToGroup.js +10 -10
- package/scripts/fixExternalUserId.js +2 -2
- package/scripts/fixGroupAccess.js +3 -3
- package/scripts/fixGroupIdeasAndPointsCount.js +2 -2
- package/scripts/fixNotificationSettings.js +4 -4
- package/scripts/fixSurveyRadioBakedInSubCodes.js +6 -6
- package/scripts/fixWrongUserIdForStatusUpdates.js +6 -5
- package/scripts/gallery/exportGalleryData.js +2 -2
- package/scripts/gallery/importGalleryForCommunity.js +14 -14
- package/scripts/gallery/readJsonAndDownloadImagesVersion2.js +6 -6
- package/scripts/gallery/refreshAcApiPostIdsForCommunity.js +5 -5
- package/scripts/genderAnalysis.js +10 -10
- package/scripts/genderAnalysisByStatus.js +4 -4
- package/scripts/importAllLocalesFromLocalFolders.js +7 -7
- package/scripts/importDomain.js +131 -131
- package/scripts/keys/addOidcToDomain.cjs +10 -9
- package/scripts/landUseGame/export3Ddata.js +15 -15
- package/scripts/listLanguagesForGroup.js +6 -6
- package/scripts/loadTestCreateDummyContentForGroup.js +2 -2
- package/scripts/makeRecursiveMapData.js +4 -4
- package/scripts/mapping/community_map_csv.js +5 -5
- package/scripts/moveCommunityToDomain.js +3 -3
- package/scripts/moveGroupToCommunity.js +3 -3
- package/scripts/movePostToGroup.js +5 -5
- package/scripts/movePostsToGroupsRecountGroupFromUrl.js +6 -6
- package/scripts/oldMovePostToGroup.js +9 -9
- package/scripts/processCsvForPdfUrls.js +2 -2
- package/scripts/processCsvForTranslationAndToxicity.js +10 -10
- package/scripts/recount/recount_recursive_communities.js +6 -6
- package/scripts/recountALLCommunityGroupCounts.js +4 -4
- package/scripts/recountAll.js +3 -3
- package/scripts/recountCommunitesFromUrl.js +3 -3
- package/scripts/recountCommunity.js +2 -2
- package/scripts/recountGroup.js +5 -5
- package/scripts/recountGroupNoUserChange.js +5 -5
- package/scripts/resetAllEndorsementsForGroup.js +3 -3
- package/scripts/resetEnTranslationForGroup.js +5 -5
- package/scripts/setAdminOnAll.cjs +15 -14
- package/scripts/setDomainAdmin.cjs +7 -6
- package/scripts/setDomainLocales.js +2 -2
- package/scripts/setEarlQuestionIdOnGroup.cjs +5 -4
- package/scripts/setLanguageOnGroupCommunitesFromUrl.js +3 -3
- package/scripts/setMemberOfAll.js +14 -14
- package/scripts/setNewUserForContentOfCommunity.js +9 -9
- package/scripts/setOfficialStatusOnAllPostsForCommunity.js +1 -1
- package/scripts/setUserOnAll.js +14 -14
- package/scripts/showCategoryForGroup.js +1 -1
- package/scripts/showOldActivityTypes.js +3 -3
- package/scripts/showPostsMissingCategoryForGroup.js +2 -2
- package/scripts/showStatuses.js +4 -4
- package/scripts/showUniqueVotersInCommunity.js +4 -4
- package/scripts/showUserAgentsAndIpsForEmails.js +4 -4
- package/scripts/simpleExportForGroupsForCommunity.js +5 -5
- package/scripts/simpleExportForPointsForCommunity.js +5 -5
- package/scripts/simpleExportForPostsForCommunity.js +5 -5
- package/scripts/testForEndorsments.js +4 -4
- package/scripts/undeleteGroupAndAllContent.js +8 -8
- package/scripts/undeletePost.js +7 -7
- package/scripts/unlinkSsn.js +4 -4
- package/scripts/updateFromAlthingi.js +8 -8
- package/scripts/users/createUserAddDomain.js +6 -5
- package/scripts/users/importUsersForDomainsFromXls.js +4 -3
- package/scripts/users/listDomainUsersWithSsn.js +6 -5
- package/scripts/users/removeUserFromDomain.js +6 -5
- package/scripts/users/updatePasswordFromSsn.js +5 -4
- package/scripts/users/updateUserSsnFromEmail.js +5 -4
- package/services/controllers/activities.cjs +1 -1
- package/services/controllers/news_feeds.cjs +1 -1
- package/services/controllers/notifications.cjs +1 -1
- package/services/controllers/recommendations.cjs +1 -1
- package/services/engine/allOurIdeas/aiHelper.js +10 -9
- package/services/engine/analytics/export_anon_community_activities.js +3 -3
- package/services/engine/analytics/importer.js +10 -10
- package/services/engine/analytics/plausible/manager.cjs +4 -4
- package/services/engine/analytics/statsCalc.cjs +1 -1
- package/services/engine/analytics/utils.cjs +11 -10
- package/services/engine/marketing/campaign.cjs +1 -0
- package/services/engine/moderation/fraud/CreateFraudAuditReport.cjs +2 -1
- package/services/engine/moderation/fraud/FraudBase.cjs +3 -2
- package/services/engine/moderation/fraud/FraudDeleteBase.cjs +5 -4
- package/services/engine/moderation/fraud/FraudGetBase.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetEndorsements.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetPointQualities.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetPoints.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetPosts.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetRatings.cjs +2 -1
- package/services/engine/moderation/fraud/FraudScannerNotifier.cjs +10 -9
- package/services/engine/moderation/get_moderation_items.cjs +1 -1
- package/services/engine/moderation/image_labeling/ImageLabelingBase.cjs +1 -1
- package/services/engine/moderation/process_moderation_items.cjs +1 -1
- package/services/engine/moderation/toxicity_analysis.cjs +1 -1
- package/services/engine/news_feeds/generate_dynamically.cjs +1 -1
- package/services/engine/news_feeds/generate_from_notifications.cjs +1 -1
- package/services/engine/notifications/emails_utils.cjs +2 -2
- package/services/engine/notifications/generate_point_notifications.cjs +1 -1
- package/services/engine/notifications/generate_post_notifications.cjs +1 -1
- package/services/engine/notifications/process_delayed_notifications.cjs +38 -38
- package/services/engine/notifications/process_general_notifications.cjs +1 -0
- package/services/engine/old/exporters/categories_dataset.js +11 -11
- package/services/engine/old/exporters/sentiment_dataset.js +12 -12
- package/services/engine/recommendations/events_importer.cjs +5 -5
- package/services/engine/recommendations/events_manager.cjs +1 -1
- package/services/engine/reports/add_points_to_sheet.cjs +3 -2
- package/services/engine/reports/commonUtils.js +3 -2
- package/services/engine/reports/common_utils.cjs +8 -8
- package/services/engine/reports/docx_group_report.cjs +1 -1
- package/services/engine/reports/xlsAllOurIdeasExport.js +16 -15
- package/services/engine/reports/xls_community_users_report.cjs +2 -2
- package/services/engine/reports/xls_group_report.cjs +1 -1
- package/services/llms/baseChatBot.js +12 -11
- package/services/llms/imageGeneration/chatGptImageGenerator.js +3 -2
- package/services/llms/imageGeneration/collectionImageGenerator.js +7 -6
- package/services/llms/imageGeneration/dalleImageGenerator.js +6 -5
- package/services/llms/imageGeneration/fluxImageGenerator.js +5 -4
- package/services/llms/imageGeneration/imageProcessorService.js +2 -1
- package/services/llms/imageGeneration/imagenImageGenerator.js +8 -7
- package/services/llms/imageGeneration/s3Service.js +12 -11
- package/services/llms/llmTranslation.js +30 -29
- package/services/models/ac_activity.cjs +1 -1
- package/services/models/ac_notification.cjs +1 -1
- package/services/models/ac_translation_cache.cjs +11 -11
- package/services/scripts/analytics/setup_all_plausible_goals.cjs +3 -2
- package/services/scripts/fix_old_delayed_notifications.js +3 -3
- package/services/scripts/kue_status.js +11 -11
- package/services/scripts/kue_watch_stuck_jobs.js +6 -6
- package/services/scripts/translation_clear_language.js +21 -21
- package/services/scripts/translation_delete.js +4 -4
- package/services/scripts/translation_replace_text_from_url.js +4 -4
- package/services/scripts/translation_update.js +4 -4
- package/services/scripts/translations_list.js +5 -5
- package/services/utils/airbrake.cjs +2 -1
- package/services/utils/redisConnection.cjs +6 -5
- package/services/utils/translation_helpers.cjs +3 -2
- package/services/utils/updateAllLocalesFromEn.js +20 -19
- package/services/utils/updateLocaleFolders.js +7 -6
- package/services/workers/activity.cjs +1 -1
- package/services/workers/anonymizations.cjs +1 -1
- package/services/workers/bulk_status_update.cjs +2 -2
- package/services/workers/delayed_jobs.cjs +1 -1
- package/services/workers/deletions.cjs +1 -1
- package/services/workers/email.cjs +1 -1
- package/services/workers/fraud_management.cjs +3 -3
- package/services/workers/generativeAi.js +6 -5
- package/services/workers/main.cjs +1 -1
- package/services/workers/marketing.cjs +1 -1
- package/services/workers/moderation.cjs +1 -1
- package/services/workers/notification_delivery.cjs +1 -1
- package/services/workers/notification_news_feed.cjs +1 -1
- package/services/workers/queue.cjs +2 -2
- package/services/workers/recount.cjs +1 -1
- package/services/workers/reports.cjs +1 -1
- package/services/workers/similarities.cjs +4 -2
- package/services/workers/speech_to_text.cjs +1 -1
- package/utils/airbrake.cjs +2 -1
- package/utils/cjsCodeReview.js +7 -6
- package/utils/community_mapping_tools.cjs +3 -2
- package/utils/copy_utils.cjs +32 -31
- package/utils/export_utils.cjs +7 -7
- package/utils/generateDocumentation.js +10 -9
- package/utils/logger.cjs +2 -23
- package/utils/logger.d.cts +1 -1
- package/utils/loggerAirbrakeTransport.cjs +52 -0
- package/utils/loggerAirbrakeTransport.d.cts +15 -0
- package/utils/loggerAirbrakeTransportTs.d.ts +15 -0
- package/utils/loggerAirbrakeTransportTs.js +45 -0
- package/utils/loggerCore.cjs +29 -0
- package/utils/loggerCore.d.cts +2 -0
- package/utils/loggerCoreTs.d.ts +2 -0
- package/utils/loggerCoreTs.js +23 -0
- package/utils/loggerTs.d.ts +1 -2
- package/utils/loggerTs.js +2 -25
- package/utils/manifest_generator.cjs +1 -0
- package/utils/recount_utils.cjs +6 -5
- package/utils/seedModels.js +50 -49
- package/utils/sitemap_generator.cjs +4 -4
- package/utils/ypLanguages.js +2 -2
- package/webSockets.js +8 -7
- package/services/utils/logger.cjs +0 -25
- package/services/utils/logger.d.cts +0 -2
- package/src/agents/assistants/assistant.d.ts +0 -156
- package/src/controllers/audios.d.ts +0 -5
- package/src/controllers/categories.d.ts +0 -5
- package/src/controllers/communities.d.ts +0 -5
- package/src/controllers/domains.d.ts +0 -5
- package/src/controllers/groups.d.ts +0 -5
- package/src/controllers/images.d.ts +0 -5
- package/src/controllers/points.d.ts +0 -5
- package/src/controllers/posts.d.ts +0 -5
- package/src/controllers/ratings.d.ts +0 -5
- package/src/controllers/users.d.ts +0 -5
- package/src/controllers/videos.d.ts +0 -5
- package/src/models/index.d.ts +0 -84
- package/src/services/controllers/activities.d.ts +0 -5
- package/src/services/controllers/notifications.d.ts +0 -5
- package/src/utils/copy_utils.d.ts +0 -4
- package/src/utils/manifest_generator.d.ts +0 -18
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const { Translate } = require("@google-cloud/translate").v2;
|
|
3
3
|
const farmhash = require("farmhash");
|
|
4
|
-
const log = require("
|
|
4
|
+
const log = require("../../utils/logger.cjs");
|
|
5
5
|
const PAIRWISE_API_HOST = process.env.PAIRWISE_API_HOST;
|
|
6
6
|
const PAIRWISE_USERNAME = process.env.PAIRWISE_USERNAME;
|
|
7
7
|
const PAIRWISE_PASSWORD = process.env.PAIRWISE_PASSWORD;
|
|
@@ -57,7 +57,7 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
57
57
|
headers: defaultHeader,
|
|
58
58
|
});
|
|
59
59
|
if (!choiceResponse.ok) {
|
|
60
|
-
|
|
60
|
+
log.error("Failed to fetch answers");
|
|
61
61
|
return null;
|
|
62
62
|
}
|
|
63
63
|
const choice = await choiceResponse.json();
|
|
@@ -67,7 +67,7 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
67
67
|
return data["content"];
|
|
68
68
|
}
|
|
69
69
|
catch (error) {
|
|
70
|
-
|
|
70
|
+
log.error("Failed to parse choice data", error);
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -81,7 +81,7 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
81
81
|
headers: defaultHeader,
|
|
82
82
|
});
|
|
83
83
|
if (!questionResponse.ok) {
|
|
84
|
-
|
|
84
|
+
log.error("Failed to fetch question");
|
|
85
85
|
return null;
|
|
86
86
|
}
|
|
87
87
|
const question = await questionResponse.json();
|
|
@@ -180,13 +180,13 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
180
180
|
? modelInstance.public_data.transcript.text
|
|
181
181
|
: null;
|
|
182
182
|
default:
|
|
183
|
-
|
|
183
|
+
log.error("No valid textType for translation");
|
|
184
184
|
return null;
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
catch (error) {
|
|
189
|
-
|
|
189
|
+
log.error("Failed to get content to translate", error);
|
|
190
190
|
return null;
|
|
191
191
|
}
|
|
192
192
|
};
|
|
@@ -432,7 +432,7 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
432
432
|
let languageInfo = {};
|
|
433
433
|
for (let i = 0; i < textsToTranslate.length; i += chunkSize) {
|
|
434
434
|
const chunk = textsToTranslate.slice(i, i + chunkSize);
|
|
435
|
-
|
|
435
|
+
log.info("Calling Google Translate...");
|
|
436
436
|
const [translatedChunk, info] = await translateAPI.translate(chunk, targetLanguage);
|
|
437
437
|
translatedStrings.push(...translatedChunk);
|
|
438
438
|
if (i === 0) {
|
|
@@ -469,13 +469,13 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
469
469
|
});
|
|
470
470
|
}
|
|
471
471
|
catch (error) {
|
|
472
|
-
|
|
472
|
+
log.error("Failed to get translation from Google", error);
|
|
473
473
|
}
|
|
474
474
|
if (!translateAPI) {
|
|
475
475
|
callback("No translation API");
|
|
476
476
|
return;
|
|
477
477
|
}
|
|
478
|
-
|
|
478
|
+
log.info("Calling Google Translate...");
|
|
479
479
|
translateAPI
|
|
480
480
|
.translate(contentToTranslate, targetLanguage)
|
|
481
481
|
.then((results) => {
|
|
@@ -621,7 +621,7 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
621
621
|
}
|
|
622
622
|
}
|
|
623
623
|
catch (error) {
|
|
624
|
-
|
|
624
|
+
log.error("Failed to translate with LLM", error);
|
|
625
625
|
callback(error);
|
|
626
626
|
}
|
|
627
627
|
};
|
|
@@ -630,7 +630,7 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
630
630
|
callback("No LLM to translate with");
|
|
631
631
|
return;
|
|
632
632
|
}
|
|
633
|
-
|
|
633
|
+
log.info(`contentToTranslate ${contentToTranslate}`);
|
|
634
634
|
if (!AcTranslationCache.llmTranslation) {
|
|
635
635
|
const { YpLlmTranslation } = await import("../llms/llmTranslation.js");
|
|
636
636
|
AcTranslationCache.llmTranslation = new YpLlmTranslation();
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const { addAllPlausibleGoals } = require("../../engine/analytics/plausible/manager");
|
|
3
|
+
const log = require("../../../utils/logger.cjs");
|
|
3
4
|
(async function () {
|
|
4
5
|
try {
|
|
5
6
|
await addAllPlausibleGoals();
|
|
6
|
-
|
|
7
|
+
log.info("All done");
|
|
7
8
|
process.exit();
|
|
8
9
|
}
|
|
9
10
|
catch (error) {
|
|
10
|
-
|
|
11
|
+
log.error(error);
|
|
11
12
|
process.exit();
|
|
12
13
|
}
|
|
13
14
|
})();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var models = require('../../models/index.cjs');
|
|
2
2
|
var async = require('async');
|
|
3
|
-
var log = require('
|
|
3
|
+
var log = require('../../utils/logger.cjs');
|
|
4
4
|
var _ = require('lodash');
|
|
5
5
|
var moment = require('moment');
|
|
6
6
|
var i18n = require('../utils/i18n.cjs');
|
|
@@ -31,12 +31,12 @@ models.User.findAll({
|
|
|
31
31
|
}).then(function (newDelayedNotification) {
|
|
32
32
|
async.eachSeries(delayedNotifications, function (delayedNotification, delayedNotificationSeriesCallback) {
|
|
33
33
|
async.eachSeries(delayedNotification.AcNotifications, function (notification, notificationSeriesCallback) {
|
|
34
|
-
|
|
34
|
+
log.error("NOTID:" + notification.id);
|
|
35
35
|
latestNotification = notification;
|
|
36
36
|
newDelayedNotification.addAcNotification(notification).then(function () {
|
|
37
37
|
notificationSeriesCallback();
|
|
38
38
|
}).catch(function (error) {
|
|
39
|
-
|
|
39
|
+
log.error("COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION");
|
|
40
40
|
notificationSeriesCallback();
|
|
41
41
|
});
|
|
42
42
|
}, function (error) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var kue = require('kue'), url = require('url');
|
|
2
|
-
var log = require('
|
|
2
|
+
var log = require('../../utils/logger.cjs');
|
|
3
3
|
var toJson = require('../utils/to_json.cjs');
|
|
4
4
|
var airbrake = null;
|
|
5
5
|
if (process.env.AIRBRAKE_PROJECT_ID) {
|
|
@@ -14,16 +14,16 @@ var queue = kue.createQueue({
|
|
|
14
14
|
"socket_keepalive": true
|
|
15
15
|
});
|
|
16
16
|
queue.watchStuckJobs(1000);
|
|
17
|
-
|
|
18
|
-
queue.activeCount(
|
|
19
|
-
|
|
20
|
-
queue.inactiveCount(
|
|
21
|
-
|
|
22
|
-
queue.failedCount(
|
|
23
|
-
|
|
24
|
-
queue.delayedCount(
|
|
25
|
-
|
|
26
|
-
queue.completeCount(
|
|
17
|
+
log.info("active");
|
|
18
|
+
queue.activeCount(log.info);
|
|
19
|
+
log.info("inactiveCount");
|
|
20
|
+
queue.inactiveCount(log.info);
|
|
21
|
+
log.info("failedCount");
|
|
22
|
+
queue.failedCount(log.info);
|
|
23
|
+
log.info("delayedCount");
|
|
24
|
+
queue.delayedCount(log.info);
|
|
25
|
+
log.info("completeCount");
|
|
26
|
+
queue.completeCount(log.info);
|
|
27
27
|
setTimeout(function () {
|
|
28
28
|
process.exit();
|
|
29
29
|
}, 5000);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var kue = require('kue'), url = require('url');
|
|
2
|
-
var log = require('
|
|
2
|
+
var log = require('../../utils/logger.cjs');
|
|
3
3
|
var email = require('./email.js');
|
|
4
4
|
var activity = require('./activity.js');
|
|
5
5
|
var toJson = require('../utils/to_json.cjs');
|
|
@@ -15,10 +15,10 @@ var queue = kue.createQueue({
|
|
|
15
15
|
redis: redisUrl,
|
|
16
16
|
"socket_keepalive": true
|
|
17
17
|
});
|
|
18
|
-
queue.activeCount(
|
|
19
|
-
queue.inactiveCount(
|
|
20
|
-
queue.failedCount(
|
|
21
|
-
queue.delayedCount(
|
|
22
|
-
queue.completeCount(
|
|
18
|
+
queue.activeCount(log.info);
|
|
19
|
+
queue.inactiveCount(log.info);
|
|
20
|
+
queue.failedCount(log.info);
|
|
21
|
+
queue.delayedCount(log.info);
|
|
22
|
+
queue.completeCount(log.info);
|
|
23
23
|
module.exports = queue;
|
|
24
24
|
export {};
|
|
@@ -10,22 +10,22 @@ if (objectType === "point") {
|
|
|
10
10
|
attributes: ['id', 'language']
|
|
11
11
|
}).then((result) => {
|
|
12
12
|
if (result) {
|
|
13
|
-
|
|
13
|
+
log.info(`Clearing current point language of ${result.language}`);
|
|
14
14
|
result.set('language', null);
|
|
15
15
|
result.save().then(function () {
|
|
16
|
-
|
|
16
|
+
log.info(`Cleared language for point ${result.id}`);
|
|
17
17
|
process.exit();
|
|
18
18
|
}).catch((error) => {
|
|
19
|
-
|
|
19
|
+
log.error(error);
|
|
20
20
|
process.exit();
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
|
|
24
|
+
log.warn("Not found: " + indexKey);
|
|
25
25
|
process.exit();
|
|
26
26
|
}
|
|
27
27
|
}).catch((error) => {
|
|
28
|
-
|
|
28
|
+
log.error(error);
|
|
29
29
|
process.exit();
|
|
30
30
|
});
|
|
31
31
|
}
|
|
@@ -37,22 +37,22 @@ else if (objectType === "group") {
|
|
|
37
37
|
attributes: ['id', 'language']
|
|
38
38
|
}).then((result) => {
|
|
39
39
|
if (result) {
|
|
40
|
-
|
|
40
|
+
log.info(`Clearing current group language of ${result.language}`);
|
|
41
41
|
result.set('language', null);
|
|
42
42
|
result.save().then(function () {
|
|
43
|
-
|
|
43
|
+
log.info(`Cleared language for group ${result.id}`);
|
|
44
44
|
process.exit();
|
|
45
45
|
}).catch((error) => {
|
|
46
|
-
|
|
46
|
+
log.error(error);
|
|
47
47
|
process.exit();
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
|
-
|
|
51
|
+
log.warn("Not found: " + indexKey);
|
|
52
52
|
process.exit();
|
|
53
53
|
}
|
|
54
54
|
}).catch((error) => {
|
|
55
|
-
|
|
55
|
+
log.error(error);
|
|
56
56
|
process.exit();
|
|
57
57
|
});
|
|
58
58
|
}
|
|
@@ -64,22 +64,22 @@ else if (objectType === "community") {
|
|
|
64
64
|
attributes: ['id', 'language']
|
|
65
65
|
}).then((result) => {
|
|
66
66
|
if (result) {
|
|
67
|
-
|
|
67
|
+
log.info(`Clearing current community language of ${result.language}`);
|
|
68
68
|
result.set('language', null);
|
|
69
69
|
result.save().then(function () {
|
|
70
|
-
|
|
70
|
+
log.info(`Cleared language for community ${result.id}`);
|
|
71
71
|
process.exit();
|
|
72
72
|
}).catch((error) => {
|
|
73
|
-
|
|
73
|
+
log.error(error);
|
|
74
74
|
process.exit();
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
78
|
-
|
|
78
|
+
log.warn("Not found: " + indexKey);
|
|
79
79
|
process.exit();
|
|
80
80
|
}
|
|
81
81
|
}).catch((error) => {
|
|
82
|
-
|
|
82
|
+
log.error(error);
|
|
83
83
|
process.exit();
|
|
84
84
|
});
|
|
85
85
|
}
|
|
@@ -91,27 +91,27 @@ else if (objectType === "domain") {
|
|
|
91
91
|
attributes: ['id', 'language']
|
|
92
92
|
}).then((result) => {
|
|
93
93
|
if (result) {
|
|
94
|
-
|
|
94
|
+
log.info(`Clearing current domain language of ${result.language}`);
|
|
95
95
|
result.set('language', null);
|
|
96
96
|
result.save().then(function () {
|
|
97
|
-
|
|
97
|
+
log.info(`Cleared language for domain ${result.id}`);
|
|
98
98
|
process.exit();
|
|
99
99
|
}).catch((error) => {
|
|
100
|
-
|
|
100
|
+
log.error(error);
|
|
101
101
|
process.exit();
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
105
|
-
|
|
105
|
+
log.warn("Not found: " + indexKey);
|
|
106
106
|
process.exit();
|
|
107
107
|
}
|
|
108
108
|
}).catch((error) => {
|
|
109
|
-
|
|
109
|
+
log.error(error);
|
|
110
110
|
process.exit();
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
113
|
else {
|
|
114
|
-
|
|
114
|
+
log.info("No object type selected");
|
|
115
115
|
process.exit();
|
|
116
116
|
}
|
|
117
117
|
export {};
|
|
@@ -9,19 +9,19 @@ models.AcTranslationCache.findOne({
|
|
|
9
9
|
}).then((result) => {
|
|
10
10
|
if (result) {
|
|
11
11
|
result.destroy().then(function () {
|
|
12
|
-
|
|
12
|
+
log.info(`Deleted ${result.index_key} to ${result.content}`);
|
|
13
13
|
process.exit();
|
|
14
14
|
}).catch((error) => {
|
|
15
|
-
|
|
15
|
+
log.error(error);
|
|
16
16
|
process.exit();
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
|
-
|
|
20
|
+
log.warn("Not found: " + indexKey);
|
|
21
21
|
process.exit();
|
|
22
22
|
}
|
|
23
23
|
}).catch((error) => {
|
|
24
|
-
|
|
24
|
+
log.error(error);
|
|
25
25
|
process.exit();
|
|
26
26
|
});
|
|
27
27
|
export {};
|
|
@@ -37,7 +37,7 @@ const searchAndReplaceTranslation = (textType, id, content, done) => {
|
|
|
37
37
|
if (newContent !== result.content) {
|
|
38
38
|
result.set('content', newContent);
|
|
39
39
|
result.save().then(() => {
|
|
40
|
-
|
|
40
|
+
log.info(`Updated ${result.index_key} to ${result.content}`);
|
|
41
41
|
done();
|
|
42
42
|
}).catch(error => {
|
|
43
43
|
done(error);
|
|
@@ -48,7 +48,7 @@ const searchAndReplaceTranslation = (textType, id, content, done) => {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
|
-
|
|
51
|
+
log.warn("Not found: " + indexKey);
|
|
52
52
|
done();
|
|
53
53
|
}
|
|
54
54
|
}).catch((error) => {
|
|
@@ -173,8 +173,8 @@ async.series([
|
|
|
173
173
|
},
|
|
174
174
|
], error => {
|
|
175
175
|
if (error)
|
|
176
|
-
|
|
177
|
-
|
|
176
|
+
log.error(error);
|
|
177
|
+
log.info(`All done with ${changeCount} changes`);
|
|
178
178
|
process.exit();
|
|
179
179
|
});
|
|
180
180
|
export {};
|
|
@@ -10,19 +10,19 @@ models.AcTranslationCache.findOne({
|
|
|
10
10
|
if (result) {
|
|
11
11
|
result.set('content', textToReplace);
|
|
12
12
|
result.save().then(function () {
|
|
13
|
-
|
|
13
|
+
log.info(`Updated ${result.index_key} to ${result.content}`);
|
|
14
14
|
process.exit();
|
|
15
15
|
}).catch((error) => {
|
|
16
|
-
|
|
16
|
+
log.error(error);
|
|
17
17
|
process.exit();
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
|
-
|
|
21
|
+
log.warn("Not found: " + indexKey);
|
|
22
22
|
process.exit();
|
|
23
23
|
}
|
|
24
24
|
}).catch((error) => {
|
|
25
|
-
|
|
25
|
+
log.error(error);
|
|
26
26
|
process.exit();
|
|
27
27
|
});
|
|
28
28
|
export {};
|
|
@@ -10,18 +10,18 @@ models.AcTranslationCache.findAll({
|
|
|
10
10
|
}).then((results) => {
|
|
11
11
|
if (results && results.length > 0) {
|
|
12
12
|
results.forEach((item) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
log.info(`${item.index_key} - ${item.content}`);
|
|
14
|
+
log.info(`--------------------------------------`);
|
|
15
|
+
log.info("");
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
else {
|
|
19
|
-
|
|
19
|
+
log.warn("No results found");
|
|
20
20
|
process.exit();
|
|
21
21
|
}
|
|
22
22
|
process.exit();
|
|
23
23
|
}).catch((error) => {
|
|
24
|
-
|
|
24
|
+
log.error(error);
|
|
25
25
|
process.exit();
|
|
26
26
|
});
|
|
27
27
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
const log = require('../../utils/logger.cjs');
|
|
2
3
|
if (process.env.AIRBRAKE_PROJECT_ID) {
|
|
3
4
|
const Airbrake = require('@airbrake/node');
|
|
4
5
|
let airBrake = null;
|
|
@@ -11,7 +12,7 @@ if (process.env.AIRBRAKE_PROJECT_ID) {
|
|
|
11
12
|
}
|
|
12
13
|
catch (error) {
|
|
13
14
|
airBrake = null;
|
|
14
|
-
|
|
15
|
+
log.error(error);
|
|
15
16
|
}
|
|
16
17
|
module.exports = airBrake;
|
|
17
18
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const redis = require("redis");
|
|
3
|
+
const log = require('../../utils/logger.cjs');
|
|
3
4
|
let redisClient;
|
|
4
5
|
if (process.env.REDIS_URL) {
|
|
5
6
|
let redisUrl = process.env.REDIS_URL;
|
|
@@ -21,9 +22,9 @@ if (process.env.REDIS_URL) {
|
|
|
21
22
|
else {
|
|
22
23
|
redisClient = redis.createClient({ legacyMode: true });
|
|
23
24
|
}
|
|
24
|
-
redisClient.on("error", (err) =>
|
|
25
|
-
redisClient.on("connect", () =>
|
|
26
|
-
redisClient.on("reconnecting", () =>
|
|
27
|
-
redisClient.on("ready", () =>
|
|
28
|
-
redisClient.connect().catch(
|
|
25
|
+
redisClient.on("error", (err) => log.error("Backend Redis client error", err));
|
|
26
|
+
redisClient.on("connect", () => log.info("Backend Redis client is connect"));
|
|
27
|
+
redisClient.on("reconnecting", () => log.info("Backend Redis client is reconnecting"));
|
|
28
|
+
redisClient.on("ready", () => log.info("Backend Redis client is ready"));
|
|
29
|
+
redisClient.connect().catch(log.error);
|
|
29
30
|
module.exports = redisClient;
|
|
@@ -5,6 +5,7 @@ const _ = require("lodash");
|
|
|
5
5
|
const fs = require("fs");
|
|
6
6
|
const request = require("request");
|
|
7
7
|
const farmhash = require("farmhash");
|
|
8
|
+
const log = require('../../utils/logger.cjs');
|
|
8
9
|
const fixTargetLocale = (itemTargetLocale) => {
|
|
9
10
|
let targetLocale = itemTargetLocale.replace("_", "-");
|
|
10
11
|
if (targetLocale !== "sr-latin" &&
|
|
@@ -19,7 +20,7 @@ const fixTargetLocale = (itemTargetLocale) => {
|
|
|
19
20
|
};
|
|
20
21
|
const addItem = (targetLocale, items, textType, id, content, done) => {
|
|
21
22
|
if (!content) {
|
|
22
|
-
|
|
23
|
+
log.info(`No content for ${textType} ${id}`);
|
|
23
24
|
done();
|
|
24
25
|
}
|
|
25
26
|
else {
|
|
@@ -42,7 +43,7 @@ const addItem = (targetLocale, items, textType, id, content, done) => {
|
|
|
42
43
|
done();
|
|
43
44
|
})
|
|
44
45
|
.catch((error) => {
|
|
45
|
-
|
|
46
|
+
log.error(error);
|
|
46
47
|
done(error);
|
|
47
48
|
});
|
|
48
49
|
}
|
|
@@ -4,6 +4,7 @@ import * as fs from "fs";
|
|
|
4
4
|
import * as path from "path";
|
|
5
5
|
import { promisify } from "util";
|
|
6
6
|
import { YpLanguages } from "../../utils/ypLanguages.js";
|
|
7
|
+
import log from "../../utils/loggerTs.js";
|
|
7
8
|
const readFilePromise = promisify(fs.readFile);
|
|
8
9
|
const writeFilePromise = promisify(fs.writeFile);
|
|
9
10
|
export class YpLocaleTranslation {
|
|
@@ -39,17 +40,17 @@ export class YpLocaleTranslation {
|
|
|
39
40
|
for (const localeDir of localeDirs) {
|
|
40
41
|
if (localeDir === "en")
|
|
41
42
|
continue; // Skip English since it's the base
|
|
42
|
-
|
|
43
|
+
log.info(`Processing locale: ${localeDir}`);
|
|
43
44
|
const translationFilePath = path.join(localesDir, localeDir, "translation.json");
|
|
44
45
|
let translation = await this.loadJsonFile(translationFilePath);
|
|
45
46
|
translation = this.updateWithMissingKeys(baseTranslation, translation);
|
|
46
|
-
|
|
47
|
+
log.info(`Updated translation for ${localeDir}:`);
|
|
47
48
|
const missingTranslations = this.extractMissingTranslations(baseTranslation, translation);
|
|
48
49
|
// Chunk the missing translations
|
|
49
50
|
const chunks = this.chunkArray(missingTranslations, 15);
|
|
50
|
-
|
|
51
|
+
log.info(`Missing translations for ${localeDir}:`, missingTranslations, chunks);
|
|
51
52
|
for (const chunk of chunks) {
|
|
52
|
-
//
|
|
53
|
+
//log.info(`Translating chunk: ${JSON.stringify(chunk)}`); // Log the chunk before translation
|
|
53
54
|
// Prepare the texts for translation
|
|
54
55
|
const textsToTranslate = chunk.map((key) => this.getValueByPath(translation, key));
|
|
55
56
|
// Call your translateUITexts method
|
|
@@ -60,14 +61,14 @@ export class YpLocaleTranslation {
|
|
|
60
61
|
this.setValueAtPath(translation, key, translations[index]);
|
|
61
62
|
}
|
|
62
63
|
});
|
|
63
|
-
//
|
|
64
|
-
|
|
64
|
+
//log.info(`Chunk after translation: ${JSON.stringify(chunk)}`); // Log the chunk after translation
|
|
65
|
+
log.info(`Updated translation for ${localeDir}:`);
|
|
65
66
|
await writeFilePromise(translationFilePath, JSON.stringify(translation, null, 2));
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
setValueAtPath(obj, path, value) {
|
|
70
|
-
//
|
|
71
|
+
//log.info(`Setting value at path: ${path} to '${value}'`); // Debugging log
|
|
71
72
|
const keys = path.split(".");
|
|
72
73
|
let current = obj;
|
|
73
74
|
for (let i = 0; i < keys.length - 1; i++) {
|
|
@@ -91,14 +92,14 @@ export class YpLocaleTranslation {
|
|
|
91
92
|
if (typeof base[key] === "object" && base[key] !== null) {
|
|
92
93
|
// If the base key is an object, ensure the target has a corresponding object
|
|
93
94
|
if (!target.hasOwnProperty(key) || typeof target[key] !== "object" || target[key] === null) {
|
|
94
|
-
|
|
95
|
+
log.info(`Creating missing object at path: ${newPath.join(".")}`);
|
|
95
96
|
target[key] = {}; // Initialize missing object
|
|
96
97
|
}
|
|
97
98
|
updateRecursively(base[key], target[key], newPath); // Recurse into objects
|
|
98
99
|
}
|
|
99
100
|
else if (!target.hasOwnProperty(key) || target[key] === "" || target[key] === null) {
|
|
100
101
|
// If the key is missing or empty in the target, update it from the base
|
|
101
|
-
|
|
102
|
+
log.info(`Updating missing or empty key at path: ${newPath.join(".")}`);
|
|
102
103
|
target[key] = base[key];
|
|
103
104
|
}
|
|
104
105
|
// No action needed for non-empty, non-object fields; they're already present and not empty
|
|
@@ -174,14 +175,14 @@ Your ${language} website backend texts JSON output:`;
|
|
|
174
175
|
}
|
|
175
176
|
async translateUITexts(languageIsoCode, textsToTranslate) {
|
|
176
177
|
try {
|
|
177
|
-
|
|
178
|
+
log.info(`translateTexts: ${JSON.stringify(textsToTranslate)} ${languageIsoCode}`);
|
|
178
179
|
const languageName = YpLanguages.getEnglishName(languageIsoCode) ||
|
|
179
180
|
languageIsoCode;
|
|
180
|
-
|
|
181
|
+
log.info("LANGUAGE NAME:", languageName);
|
|
181
182
|
return await this.callLlm(languageName, textsToTranslate);
|
|
182
183
|
}
|
|
183
184
|
catch (error) {
|
|
184
|
-
|
|
185
|
+
log.error("Error in getAnswerIdeas:", error);
|
|
185
186
|
return undefined;
|
|
186
187
|
}
|
|
187
188
|
}
|
|
@@ -201,16 +202,16 @@ Your ${language} website backend texts JSON output:`;
|
|
|
201
202
|
let running = true;
|
|
202
203
|
while (running) {
|
|
203
204
|
try {
|
|
204
|
-
|
|
205
|
+
log.info(`Messages ${retries}:`, messages);
|
|
205
206
|
const results = await this.openaiClient.chat.completions.create({
|
|
206
207
|
model: this.modelName,
|
|
207
208
|
messages,
|
|
208
209
|
max_tokens: this.maxTokens,
|
|
209
210
|
temperature: this.temperature,
|
|
210
211
|
});
|
|
211
|
-
|
|
212
|
+
log.info("Results:", results);
|
|
212
213
|
const textJson = results.choices[0].message.content;
|
|
213
|
-
|
|
214
|
+
log.info("Text JSON:", textJson);
|
|
214
215
|
if (textJson) {
|
|
215
216
|
let cleanText = textJson;
|
|
216
217
|
// Detect and remove markdown code block syntax if present
|
|
@@ -220,10 +221,10 @@ Your ${language} website backend texts JSON output:`;
|
|
|
220
221
|
let translationData = [];
|
|
221
222
|
try {
|
|
222
223
|
translationData = JSON.parse(jsonrepair(cleanText));
|
|
223
|
-
|
|
224
|
+
log.info("Parsed Translation Data:", translationData);
|
|
224
225
|
}
|
|
225
226
|
catch (error) {
|
|
226
|
-
|
|
227
|
+
log.error("Error parsing cleaned text as JSON:", error);
|
|
227
228
|
}
|
|
228
229
|
if (translationData) {
|
|
229
230
|
running = false;
|
|
@@ -235,10 +236,10 @@ Your ${language} website backend texts JSON output:`;
|
|
|
235
236
|
}
|
|
236
237
|
}
|
|
237
238
|
catch (error) {
|
|
238
|
-
|
|
239
|
+
log.error("Error:", error);
|
|
239
240
|
retries++;
|
|
240
241
|
if (retries > maxRetries) {
|
|
241
|
-
|
|
242
|
+
log.error("Max retries reached");
|
|
242
243
|
running = false;
|
|
243
244
|
return undefined;
|
|
244
245
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { YpLanguages } from "../../utils/ypLanguages.js";
|
|
2
2
|
import fs from "fs/promises";
|
|
3
3
|
import path from "path";
|
|
4
|
+
import log from "../../utils/loggerTs.js";
|
|
4
5
|
const ensureAllLocaleFoldersAreCreated = async () => {
|
|
5
6
|
const localesPath = path.join(process.cwd(), "locales");
|
|
6
7
|
try {
|
|
@@ -12,23 +13,23 @@ const ensureAllLocaleFoldersAreCreated = async () => {
|
|
|
12
13
|
.then(() => true)
|
|
13
14
|
.catch(() => false);
|
|
14
15
|
if (!pathExists) {
|
|
15
|
-
|
|
16
|
+
log.info("Creating ---->:", localePath);
|
|
16
17
|
await fs.mkdir(localePath, { recursive: true });
|
|
17
18
|
await fs.writeFile(path.join(localePath, "translation.json"), "{}");
|
|
18
19
|
}
|
|
19
20
|
else {
|
|
20
|
-
|
|
21
|
+
log.info("Path exists:", localePath);
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
log.info("Locale folders and files have been created successfully.");
|
|
24
25
|
}
|
|
25
26
|
catch (error) {
|
|
26
|
-
|
|
27
|
+
log.error("Error creating locale folders:", error);
|
|
27
28
|
}
|
|
28
29
|
};
|
|
29
30
|
async function main() {
|
|
30
31
|
await ensureAllLocaleFoldersAreCreated();
|
|
31
32
|
}
|
|
32
33
|
main()
|
|
33
|
-
.then(() =>
|
|
34
|
-
.catch((error) =>
|
|
34
|
+
.then(() => log.info("I have updated the locale folders."))
|
|
35
|
+
.catch((error) => log.error("Error in main:", error));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// https://gist.github.com/mojodna/1251812
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const toJson = require('../utils/to_json.cjs');
|
|
6
6
|
const async = require('async');
|
|
7
7
|
let airbrake = null;
|