1 line
15 KiB
JSON
1 line
15 KiB
JSON
{"repo": "3502408704/mengzai-wechat-toolbox", "files": {"app/src/main/java/com/paiban/helper/di/AppModule.kt": {"7c06144596065889adb5d5cb9b14ce5d17f09da2": {"t": 1785745734.129274, "n": 5356, "h": "7e9654d431d9a091", "c": "package com.paiban.helper.di\n\nimport android.content.Context\nimport androidx.datastore.core.DataStore\nimport androidx.datastore.preferences.core.Preferences\nimport androidx.room.Room\nimport com.paiban.helper.BuildConfig\nimport com.paiban.helper.data.db.AppDatabase\nimport com.paiban.helper.data.db.AiConfigDao\nimport com.paiban.helper.data.repository.AiSettingsRepository\nimport com.paiban.helper.data.repository.EditorRepository\nimport com.paiban.helper.data.repository.SettingsRepository\nimport com.paiban.helper.domain.analysis.ContentClassifier\nimport com.paiban.helper.domain.ai.AiChatRepository\nimport com.paiban.helper.domain.ai.DeepSeekClient\nimport com.paiban.helper.domain.ai.DeepSeekConfig\nimport com.paiban.helper.domain.ai.AiSecretCrypto\nimport com.paiban.helper.domain.clipboard.ClipboardInspector\nimport com.paiban.helper.domain.files.ImportExportManager\nimport com.paiban.helper.domain.render.HtmlSanitizer\nimport com.paiban.helper.domain.render.InlineArticleRenderer\nimport com.paiban.helper.domain.render.MarkdownConverter\nimport com.paiban.helper.domain.render.PreviewDocumentBuilder\nimport com.paiban.helper.domain.template.ArticleTemplateRepository\nimport dagger.Module\nimport dagger.Provides\nimport dagger.hilt.InstallIn\nimport dagger.hilt.android.qualifiers.ApplicationContext\nimport dagger.hilt.components.SingletonComponent\nimport java.io.File\nimport javax.inject.Singleton\n\n@Module\n@InstallIn(SingletonComponent::class)\nobject AppModule {\n @Provides\n @Singleton\n fun provideAppDatabase(@ApplicationContext context: Context): AppDatabase {\n return Room.databaseBuilder(context, AppDatabase::class.java, \"paiban.db\")\n .addMigrations(AppDatabase.MIGRATION_1_2, AppDatabase.MIGRATION_2_3)\n .build()\n }\n\n @Provides\n fun provideDraftDao(database: AppDatabase) = database.draftDao()\n\n @Provides\n fun provideHistoryDao(database: AppDatabase) = database.historyDao()\n\n @Provides\n fun provideAiConfigDao(database: AppDatabase): AiConfigDao = database.aiConfigDao()\n\n @Provides\n @Singleton\n fun provideSettingsDataStore(@ApplicationContext context: Context): DataStore<Preferences> {\n return SettingsRepository.createDataStore(context)\n }\n\n @Provides\n @Singleton\n fun provideEditorRepository(\n draftDao: com.paiban.helper.data.db.DraftDao,\n historyDao: com.paiban.helper.data.db.HistoryDao,\n ): EditorRepository {\n return EditorRepository(draftDao, historyDao)\n }\n\n @Provides\n @Singleton\n fun provideSettingsRepository(\n dataStore: DataStore<Preferences>,\n ): SettingsRepository {\n return SettingsRepository(dataStore)\n }\n\n @Provides\n @Singleton\n fun provideAiSecretCrypto(): AiSecretCrypto = AiSecretCrypto()\n\n @Provides\n @Singleton\n fun provideAiSettingsRepository(\n aiConfigDao: AiConfigDao,\n secretCrypto: AiSecretCrypto,\n ): AiSettingsRepository {\n return AiSettingsRepository(\n dao = aiConfigDao,\n crypto = secretCrypto,\n builtInApiKey = BuildConfig.DEEPSEEK_API_KEY,\n )\n }\n\n @Provides\n @Singleton\n fun provideDeepSeekConfig(): DeepSeekConfig {\n return DeepSeekConfig(\n apiKeyValue = BuildConfig.DEEPSEEK_API_KEY,\n model = DeepSeekConfig.DEFAULT_MODEL,\n )\n }\n\n @Provides\n @Singleton\n fun provideDeepSeekClient(\n config: DeepSeekConfig,\n ): DeepSeekClient = DeepSeekClient(config)\n\n @Provides\n @Singleton\n fun provideAiChatRepository(\n @ApplicationContext context: Context,\n client: DeepSeekClient,\n ): AiChatRepository {\n return AiChatRepository(\n storageDir = File(context.filesDir, \"ai-chat\"),\n client = client,\n )\n }\n\n @Provides\n @Singleton\n fun provideClipboardInspector(): ClipboardInspector = ClipboardInspector()\n\n @Provides\n @Singleton\n fun provideTemplateRepository(@ApplicationContext context: Context): ArticleTemplateRepository {\n return ArticleTemplateRepository {\n context.assets.open(\"templates/templates.json\").bufferedReader().use { it.readText() }\n }\n }\n\n @Provides\n @Singleton\n fun provideContentClassifier(): ContentClassifier = ContentClassifier()\n\n @Provides\n @Singleton\n fun provideMarkdownConverter(): MarkdownConverter = MarkdownConverter()\n\n @Provides\n @Singleton\n fun provideHtmlSanitizer(): HtmlSanitizer = HtmlSanitizer()\n\n @Provides\n @Singleton\n fun provideInlineArticleRenderer(): InlineArticleRenderer = InlineArticleRenderer()\n\n @Provides\n @Singleton\n fun providePreviewDocumentBuilder(\n classifier: ContentClassifier,\n markdownConverter: MarkdownConverter,\n sanitizer: HtmlSanitizer,\n templateRepository: ArticleTemplateRepository,\n inlineArticleRenderer: InlineArticleRenderer,\n ): PreviewDocumentBuilder {\n return PreviewDocumentBuilder(\n classifier = classifier,\n markdownConverter = markdownConverter,\n sanitizer = sanitizer,\n templateRepository = templateRepository,\n inlineArticleRenderer = inlineArticleRenderer,\n )\n }\n\n @Provides\n @Singleton\n fun provideImportExportManager(): ImportExportManager = ImportExportManager()\n}\n"}, "6dc62acce3a1db8a12cbb80e9934985758239999": {"t": 1785755975.852706, "n": 5356, "h": "7e9654d431d9a091", "c": "package com.paiban.helper.di\n\nimport android.content.Context\nimport androidx.datastore.core.DataStore\nimport androidx.datastore.preferences.core.Preferences\nimport androidx.room.Room\nimport com.paiban.helper.BuildConfig\nimport com.paiban.helper.data.db.AppDatabase\nimport com.paiban.helper.data.db.AiConfigDao\nimport com.paiban.helper.data.repository.AiSettingsRepository\nimport com.paiban.helper.data.repository.EditorRepository\nimport com.paiban.helper.data.repository.SettingsRepository\nimport com.paiban.helper.domain.analysis.ContentClassifier\nimport com.paiban.helper.domain.ai.AiChatRepository\nimport com.paiban.helper.domain.ai.DeepSeekClient\nimport com.paiban.helper.domain.ai.DeepSeekConfig\nimport com.paiban.helper.domain.ai.AiSecretCrypto\nimport com.paiban.helper.domain.clipboard.ClipboardInspector\nimport com.paiban.helper.domain.files.ImportExportManager\nimport com.paiban.helper.domain.render.HtmlSanitizer\nimport com.paiban.helper.domain.render.InlineArticleRenderer\nimport com.paiban.helper.domain.render.MarkdownConverter\nimport com.paiban.helper.domain.render.PreviewDocumentBuilder\nimport com.paiban.helper.domain.template.ArticleTemplateRepository\nimport dagger.Module\nimport dagger.Provides\nimport dagger.hilt.InstallIn\nimport dagger.hilt.android.qualifiers.ApplicationContext\nimport dagger.hilt.components.SingletonComponent\nimport java.io.File\nimport javax.inject.Singleton\n\n@Module\n@InstallIn(SingletonComponent::class)\nobject AppModule {\n @Provides\n @Singleton\n fun provideAppDatabase(@ApplicationContext context: Context): AppDatabase {\n return Room.databaseBuilder(context, AppDatabase::class.java, \"paiban.db\")\n .addMigrations(AppDatabase.MIGRATION_1_2, AppDatabase.MIGRATION_2_3)\n .build()\n }\n\n @Provides\n fun provideDraftDao(database: AppDatabase) = database.draftDao()\n\n @Provides\n fun provideHistoryDao(database: AppDatabase) = database.historyDao()\n\n @Provides\n fun provideAiConfigDao(database: AppDatabase): AiConfigDao = database.aiConfigDao()\n\n @Provides\n @Singleton\n fun provideSettingsDataStore(@ApplicationContext context: Context): DataStore<Preferences> {\n return SettingsRepository.createDataStore(context)\n }\n\n @Provides\n @Singleton\n fun provideEditorRepository(\n draftDao: com.paiban.helper.data.db.DraftDao,\n historyDao: com.paiban.helper.data.db.HistoryDao,\n ): EditorRepository {\n return EditorRepository(draftDao, historyDao)\n }\n\n @Provides\n @Singleton\n fun provideSettingsRepository(\n dataStore: DataStore<Preferences>,\n ): SettingsRepository {\n return SettingsRepository(dataStore)\n }\n\n @Provides\n @Singleton\n fun provideAiSecretCrypto(): AiSecretCrypto = AiSecretCrypto()\n\n @Provides\n @Singleton\n fun provideAiSettingsRepository(\n aiConfigDao: AiConfigDao,\n secretCrypto: AiSecretCrypto,\n ): AiSettingsRepository {\n return AiSettingsRepository(\n dao = aiConfigDao,\n crypto = secretCrypto,\n builtInApiKey = BuildConfig.DEEPSEEK_API_KEY,\n )\n }\n\n @Provides\n @Singleton\n fun provideDeepSeekConfig(): DeepSeekConfig {\n return DeepSeekConfig(\n apiKeyValue = BuildConfig.DEEPSEEK_API_KEY,\n model = DeepSeekConfig.DEFAULT_MODEL,\n )\n }\n\n @Provides\n @Singleton\n fun provideDeepSeekClient(\n config: DeepSeekConfig,\n ): DeepSeekClient = DeepSeekClient(config)\n\n @Provides\n @Singleton\n fun provideAiChatRepository(\n @ApplicationContext context: Context,\n client: DeepSeekClient,\n ): AiChatRepository {\n return AiChatRepository(\n storageDir = File(context.filesDir, \"ai-chat\"),\n client = client,\n )\n }\n\n @Provides\n @Singleton\n fun provideClipboardInspector(): ClipboardInspector = ClipboardInspector()\n\n @Provides\n @Singleton\n fun provideTemplateRepository(@ApplicationContext context: Context): ArticleTemplateRepository {\n return ArticleTemplateRepository {\n context.assets.open(\"templates/templates.json\").bufferedReader().use { it.readText() }\n }\n }\n\n @Provides\n @Singleton\n fun provideContentClassifier(): ContentClassifier = ContentClassifier()\n\n @Provides\n @Singleton\n fun provideMarkdownConverter(): MarkdownConverter = MarkdownConverter()\n\n @Provides\n @Singleton\n fun provideHtmlSanitizer(): HtmlSanitizer = HtmlSanitizer()\n\n @Provides\n @Singleton\n fun provideInlineArticleRenderer(): InlineArticleRenderer = InlineArticleRenderer()\n\n @Provides\n @Singleton\n fun providePreviewDocumentBuilder(\n classifier: ContentClassifier,\n markdownConverter: MarkdownConverter,\n sanitizer: HtmlSanitizer,\n templateRepository: ArticleTemplateRepository,\n inlineArticleRenderer: InlineArticleRenderer,\n ): PreviewDocumentBuilder {\n return PreviewDocumentBuilder(\n classifier = classifier,\n markdownConverter = markdownConverter,\n sanitizer = sanitizer,\n templateRepository = templateRepository,\n inlineArticleRenderer = inlineArticleRenderer,\n )\n }\n\n @Provides\n @Singleton\n fun provideImportExportManager(): ImportExportManager = ImportExportManager()\n}\n"}, "f7ba6f5a8d65d712fc52774c2950abce1faa3dae": {"t": 1785755977.1131766, "n": 3739, "h": "6cdba738f9d8fdfc", "c": "package com.paiban.helper.di\n\nimport android.content.Context\nimport androidx.datastore.core.DataStore\nimport androidx.datastore.preferences.core.Preferences\nimport androidx.room.Room\nimport com.paiban.helper.data.db.AppDatabase\nimport com.paiban.helper.data.repository.EditorRepository\nimport com.paiban.helper.data.repository.SettingsRepository\nimport com.paiban.helper.domain.analysis.ContentClassifier\nimport com.paiban.helper.domain.clipboard.ClipboardInspector\nimport com.paiban.helper.domain.files.ImportExportManager\nimport com.paiban.helper.domain.render.HtmlSanitizer\nimport com.paiban.helper.domain.render.InlineArticleRenderer\nimport com.paiban.helper.domain.render.MarkdownConverter\nimport com.paiban.helper.domain.render.PreviewDocumentBuilder\nimport com.paiban.helper.domain.template.ArticleTemplateRepository\nimport dagger.Module\nimport dagger.Provides\nimport dagger.hilt.InstallIn\nimport dagger.hilt.android.qualifiers.ApplicationContext\nimport dagger.hilt.components.SingletonComponent\nimport javax.inject.Singleton\n\n@Module\n@InstallIn(SingletonComponent::class)\nobject AppModule {\n @Provides\n @Singleton\n fun provideAppDatabase(@ApplicationContext context: Context): AppDatabase {\n return Room.databaseBuilder(context, AppDatabase::class.java, \"paiban.db\")\n .addMigrations(AppDatabase.MIGRATION_1_2)\n .build()\n }\n\n @Provides\n fun provideDraftDao(database: AppDatabase) = database.draftDao()\n\n @Provides\n fun provideHistoryDao(database: AppDatabase) = database.historyDao()\n\n @Provides\n @Singleton\n fun provideSettingsDataStore(@ApplicationContext context: Context): DataStore<Preferences> {\n return SettingsRepository.createDataStore(context)\n }\n\n @Provides\n @Singleton\n fun provideEditorRepository(\n draftDao: com.paiban.helper.data.db.DraftDao,\n historyDao: com.paiban.helper.data.db.HistoryDao,\n ): EditorRepository {\n return EditorRepository(draftDao, historyDao)\n }\n\n @Provides\n @Singleton\n fun provideSettingsRepository(\n dataStore: DataStore<Preferences>,\n ): SettingsRepository {\n return SettingsRepository(dataStore)\n }\n\n @Provides\n @Singleton\n fun provideClipboardInspector(): ClipboardInspector = ClipboardInspector()\n\n @Provides\n @Singleton\n fun provideTemplateRepository(@ApplicationContext context: Context): ArticleTemplateRepository {\n return ArticleTemplateRepository {\n context.assets.open(\"templates/templates.json\").bufferedReader().use { it.readText() }\n }\n }\n\n @Provides\n @Singleton\n fun provideContentClassifier(): ContentClassifier = ContentClassifier()\n\n @Provides\n @Singleton\n fun provideMarkdownConverter(): MarkdownConverter = MarkdownConverter()\n\n @Provides\n @Singleton\n fun provideHtmlSanitizer(): HtmlSanitizer = HtmlSanitizer()\n\n @Provides\n @Singleton\n fun provideInlineArticleRenderer(): InlineArticleRenderer = InlineArticleRenderer()\n\n @Provides\n @Singleton\n fun providePreviewDocumentBuilder(\n classifier: ContentClassifier,\n markdownConverter: MarkdownConverter,\n sanitizer: HtmlSanitizer,\n templateRepository: ArticleTemplateRepository,\n inlineArticleRenderer: InlineArticleRenderer,\n ): PreviewDocumentBuilder {\n return PreviewDocumentBuilder(\n classifier = classifier,\n markdownConverter = markdownConverter,\n sanitizer = sanitizer,\n templateRepository = templateRepository,\n inlineArticleRenderer = inlineArticleRenderer,\n )\n }\n\n @Provides\n @Singleton\n fun provideImportExportManager(): ImportExportManager = ImportExportManager()\n}\n"}}}} |