django-unicom 25.4.2.dev1__tar.gz → 25.4.2.dev2__tar.gz
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.
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/PKG-INFO +2 -1
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/django_unicom.egg-info/PKG-INFO +2 -1
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/django_unicom.egg-info/requires.txt +1 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/setup.py +1 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/_version.py +2 -2
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/message.py +9 -2
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/.cursor/rules/match_codebase_style.mdc +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/.cursor/rules/preserve_comments_and_irrelevant_code.mdc +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/.cursor/rules/require_context_before_changes.mdc +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/Dockerfile +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/MANIFEST.in +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/Makefile +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/README.md +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/conftest.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/data/definitions/bots/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/data/definitions/tools/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/django_unicom.egg-info/SOURCES.txt +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/django_unicom.egg-info/dependency_links.txt +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/django_unicom.egg-info/top_level.txt +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/docker-compose.yaml +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/entrypoint.sh +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/internal-channel-modernization.md +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/manage.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/pyproject.toml +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/pytest.ini +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/requirements.txt +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/scripts/reacher_validate.sh +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/setup.cfg +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_cross_platform_buttons.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_email_authentication.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_email_live.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_email_request_processing.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_telegram_live.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_webchat.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_webchat_branching.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/utils.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/todo.md +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/account_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/channel_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/chat_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/draft_message_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/email_inline_image_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/filters.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/member_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/message_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/message_template_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/request_admin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/apps.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/consumers/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/consumers/webchat_consumer.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/management/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/management/commands/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/management/commands/mail_inbox_listen.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/management/commands/run_as_llm_chat.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/management/commands/send_scheduled_messages.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/management/commands/start_imap_listeners.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0001_initial.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0002_emailinlineimage.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0003_alter_emailinlineimage_email_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0004_messagetemplateinlineimage.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0005_emailinlineimage_hash_and_more.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0006_channel_created_at_channel_created_by_and_more.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0007_message_imap_uid.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0008_add_all_members_group.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0009_add_tool_call_types.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0010_request_initial_request_request_llm_calls_count_and_more.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0011_toolcall_add_message_reference.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0012_message_response_to_tool_call_and_more.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0013_callbackexecution.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0014_rename_authorized_user_to_intended_account.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0015_simplify_callback_execution.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0016_callbackexecution_tool_call.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0017_add_chat_metadata.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0018_message_bounce_details_message_bounce_reason_and_more.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0019_draftmessage_skip_reacher_validation.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0020_message_provider_message_id.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0021_message_open_count.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0022_toolcall_result_status.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0023_toolcall_progress_updates_for_user.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0024_email_from_name.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0025_message_unicom_message_channel_imap_uid_unique.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0026_message_email_sender_authenticated.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/account.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/account_chat.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/callback_execution.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/channel.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/chat.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/constants.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/draft_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/fields.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/member.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/member_group.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/message_template.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/request.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/request_category.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/tool_call.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/models/update.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/chat_summary.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/crossplatform/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/crossplatform/reply_to_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/crossplatform/scheduler.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/crossplatform/send_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/decode_base64_image.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/IMAP_thread_manager.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/auth_helpers.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/email_tracking.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/listen_to_IMAP.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/quote_filter.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/replace_cid_images_with_base64.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/save_email_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/send_email_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/system_channel.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/validate_email_config.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/get_public_origin.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/html_inline_images.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/internal/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/internal/generate_text_message_data.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/internal/save_internal_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/internal/send_internal_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/llm/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/llm/tool_calls.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/answer_callback_query.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/create_inline_keyboard.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/download_file.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/edit_telegram_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/escape_markdown.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/get_file_path.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/handle_telegram_callback.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/save_telegram_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/send_telegram_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/set_telegram_webhook.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/start_typing_in_telegram.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/stop_typing_in_telegram.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/template_renderer.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/webchat/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/webchat/generate_chat_title.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/webchat/get_or_create_account.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/webchat/migrate_guest_to_user.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/webchat/save_webchat_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/webchat/send_webchat_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/whatsapp/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/whatsapp/get_template.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/whatsapp/save_whatsapp_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/whatsapp/save_whatsapp_message_status.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/whatsapp/send_whatsapp_message.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/signals.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/css/bootstrap_scoped.css +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/css/draft_message_mobile.css +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/js/channel_config.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/js/tinymce_ai_template.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/js/tinymce_init.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/components/chat-list.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/components/media-preview.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/components/message-input.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/components/message-item.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/components/message-list.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/components/voice-recorder.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/utils/api-client.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/utils/datetime-formatter.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/utils/font-awesome-loader.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/utils/morphdom.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/utils/realtime-client.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/webchat-component.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/webchat-styles.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/webchat/webchat-with-sidebar.js +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/chat/change_list.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/chat/compose.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/chat_history.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/forms/email_message_form.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/forms/text_message_form.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/includes/ai_template_modal.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/includes/loading_indicators.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/includes/message_actions_menu.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/admin/unicom/messagetemplate/change_form.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/code_templates/category_processor.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/unicom/webchat_demo.html +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templatetags/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templatetags/unicom_tags.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/urls.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/chat_history_view.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/compose_view.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/email_tracking.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/inline_image.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/message_template.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/telegram_webhook.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/webchat_demo_view.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/webchat_views.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/views/whatsapp_webhook.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/apps.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/asgi.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/callback_handlers.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/bots/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/bots/assistant_bot.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/__init__.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/cross_platform_buttons.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/get_system_info.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/interactive_menu.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/interval_alarm.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/ip_lookup.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/simple_timer.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/settings.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/test_button_handlers.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/urls.py +0 -0
- {django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/wsgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-unicom
|
|
3
|
-
Version: 25.4.2.
|
|
3
|
+
Version: 25.4.2.dev2
|
|
4
4
|
Summary: Unified communication layer for Django (Telegram, WhatsApp, Email)
|
|
5
5
|
Home-page: https://github.com/meena-erian/django-unicom
|
|
6
6
|
Author: Meena (Menas) Erian
|
|
@@ -23,6 +23,7 @@ Requires-Dist: Pillow>=10.4.0
|
|
|
23
23
|
Requires-Dist: django-ace>=1.39.2
|
|
24
24
|
Requires-Dist: fa2svg==0.1.10
|
|
25
25
|
Requires-Dist: pytz>=2024.1
|
|
26
|
+
Requires-Dist: Jinja2>=3.1.0
|
|
26
27
|
Requires-Dist: openai
|
|
27
28
|
Requires-Dist: pydub>=0.25.1
|
|
28
29
|
Requires-Dist: audioop-lts; python_version >= "3.13"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-unicom
|
|
3
|
-
Version: 25.4.2.
|
|
3
|
+
Version: 25.4.2.dev2
|
|
4
4
|
Summary: Unified communication layer for Django (Telegram, WhatsApp, Email)
|
|
5
5
|
Home-page: https://github.com/meena-erian/django-unicom
|
|
6
6
|
Author: Meena (Menas) Erian
|
|
@@ -23,6 +23,7 @@ Requires-Dist: Pillow>=10.4.0
|
|
|
23
23
|
Requires-Dist: django-ace>=1.39.2
|
|
24
24
|
Requires-Dist: fa2svg==0.1.10
|
|
25
25
|
Requires-Dist: pytz>=2024.1
|
|
26
|
+
Requires-Dist: Jinja2>=3.1.0
|
|
26
27
|
Requires-Dist: openai
|
|
27
28
|
Requires-Dist: pydub>=0.25.1
|
|
28
29
|
Requires-Dist: audioop-lts; python_version >= "3.13"
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '25.4.2.
|
|
32
|
-
__version_tuple__ = version_tuple = (25, 4, 2, '
|
|
31
|
+
__version__ = version = '25.4.2.dev2'
|
|
32
|
+
__version_tuple__ = version_tuple = (25, 4, 2, 'dev2')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -13,6 +13,7 @@ import base64
|
|
|
13
13
|
from .fields import DedupFileField, only_delete_file_if_unused
|
|
14
14
|
from unicom.services.get_public_origin import get_public_origin
|
|
15
15
|
from openai import OpenAI
|
|
16
|
+
from openai import OpenAIError
|
|
16
17
|
from django.conf import settings
|
|
17
18
|
from pydub import AudioSegment
|
|
18
19
|
import io
|
|
@@ -20,7 +21,13 @@ import io
|
|
|
20
21
|
if TYPE_CHECKING:
|
|
21
22
|
from unicom.models import Channel
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
def get_openai_client():
|
|
25
|
+
api_key = getattr(settings, 'OPENAI_API_KEY', None)
|
|
26
|
+
if not api_key:
|
|
27
|
+
raise OpenAIError(
|
|
28
|
+
"OPENAI_API_KEY is required only for LLM features such as Message.reply_using_llm()."
|
|
29
|
+
)
|
|
30
|
+
return OpenAI(api_key=api_key)
|
|
24
31
|
|
|
25
32
|
|
|
26
33
|
class Message(models.Model):
|
|
@@ -598,7 +605,7 @@ class Message(models.Model):
|
|
|
598
605
|
openai_kwargs["modalities"] = ["text", "audio"]
|
|
599
606
|
openai_kwargs["audio"] = {"voice": voice, "format": "opus"}
|
|
600
607
|
# Call OpenAI ChatCompletion API
|
|
601
|
-
response =
|
|
608
|
+
response = get_openai_client().chat.completions.create(
|
|
602
609
|
model=model,
|
|
603
610
|
messages=messages,
|
|
604
611
|
**openai_kwargs
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/.cursor/rules/match_codebase_style.mdc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/django_unicom.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/django_unicom.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_cross_platform_buttons.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/tests/test_email_request_processing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/email_inline_image_admin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/admin/message_template_admin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/consumers/webchat_consumer.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/management/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0002_emailinlineimage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0007_message_imap_uid.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0013_callbackexecution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0017_add_chat_metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0021_message_open_count.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/migrations/0024_email_from_name.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/crossplatform/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/crossplatform/scheduler.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/decode_base64_image.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/IMAP_thread_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/auth_helpers.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/email_tracking.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/listen_to_IMAP.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/quote_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/save_email_message.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/send_email_message.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/email/system_channel.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/get_public_origin.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/html_inline_images.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/internal/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/download_file.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/escape_markdown.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/telegram/get_file_path.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/template_renderer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/whatsapp/__init__.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/services/whatsapp/get_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/js/channel_config.js
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/static/unicom/js/tinymce_init.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom/templates/unicom/webchat_demo.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/__init__.py
RENAMED
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/bots/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/definitions/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_unicom-25.4.2.dev1 → django_unicom-25.4.2.dev2}/unicom_project/test_button_handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|