CHANGELOG.md 36 KB

Hikka Changelog

๐ŸŒ‘ Hikka 1.6.3

  • Add argument item_type to db.pointer to provide interface for NamedTuple objects
  • Add correct exception propagation to inline units
  • Add -fs arg to .lm command
  • Add IDM flush_loader_cache
  • Add ability to cancel QR login using keyboard interrupt
  • Add custom security groups
  • Add automatic NoNick for tsec methods
  • Add external debugging feature (off by default)
  • Fix form invoke error message
  • Fix Backuper
  • Fix backward compatiblity with security groups SUDO (0x2) and SUPPORT (0x4)
  • Fix quickstart language buttons translations
  • Fix language buttons disabling on restart
  • Migrate inline heta search to userbot instead of centralized service
  • Cosmetical changes

๐ŸŒ‘ Hikka 1.6.2

  • Fix security issue with edited channel messages
  • Add interface to interact with raw pointer data (.data attribute)
  • Translation fixes
  • Randomize device_model to bypass fraud detection
  • Pass proper device information to Telegram
  • Update hikka-tl in accordance to upstream telethon v1
  • Update hikka-pyro in accordance to upstream pyrogram
  • Rename packages so that they don't conflict with originals
  • Partially migrate to pathlib
  • Code cleanup
  • Add ability to log in using QR code and --no-web
  • Disable web interface for Termux and fallback to CLI login instead
  • Add fancy ANSI banners
  • Add guidelines to --no-web login
  • Fix session not being saved after logging in using QR without 2fa
  • Minify static assets in web
  • Replace snowfall with sakura flowers
  • Update Termux installation design
  • Whitelist requests in APILimiter to ignore internals
  • Start web when using .weburl and --no-web is used
  • Add inline commands targeted security rules control
  • Completely remove security groups sudo and support
  • Fix proxy-pass
  • New core modules: UnitHeta, Translator
  • New watcher tags: no_pm, no_channels, no_groups, no_inline, no_stickers, no_docs, no_audios, no_videos, no_photos, no_forwards, no_reply, no_mention, mention, only_reply, only_forwards
  • Remove default presets since they are the security risk
  • Update and extend Tatar translation pack
  • Restrict setting s as command prefix, since it will break command setprefix
  • Transfer all previously non-essential modules to core ones
  • Add alternative translation mechanism using YAML

๐ŸŒ‘ Hikka 1.6.1

  • Remove miyahost from official hosts
  • Fix memory leak when using 1.6.0 inside Docker
  • Fix userbot dying after restart on Docker
  • Root out stats mechanism
  • Add French translation pack

๐ŸŒ‘ Hikka 1.6.0

  • Bring support for Dragon Userbot modules
  • Make db attribute of Modules public
  • Mess up with some translations
  • Fix .helphide command
  • Fix visual bug with phone input field in web
  • Fix proxy-passing in web
  • Fix EntityLike validator
  • Fix stringifying error in logging
  • Fix command escaping when using layout translated prefix
  • Patch .info, utils.answer etc to support forums (topics)
  • Drop Okteto support
  • Show Hikka platform and version in Telegram sessions list
  • New type DragonModule
  • New argument of get_prefix - userbot. Pass in "dragon" to get its prefix
  • New attribute of Modules - dragon_modules
  • New attribute of CustomTelegramClient - pyro_proxy. Use pyrogram methods natively
  • New appearence of help command
  • New module loading animation
  • New README.md with installation steps and new web recording
  • New utils.atexit method
  • New utils.get_topic method
  • New utils.answer_file method
  • New utils.get_cpu_usage method
  • New utils.get_ram_usage method
  • New restart process, which correctly kills all child processes and threads
  • New interactive web werkzeug debugger (view pin using .debugpin command)
  • New QR login flow
  • New license banners
  • New error-specific messages for RPCErrors, FloodWaitErrors, NetworkErrors
  • Send start hook to InfiniteLoop instances with autostart flag only after client_ready
  • Replace __getattr__ in Module object with properties for commands and handlers
  • Move from monkey-patching concept of filling modules' attributes to native one
  • Minor and major bugfixes, adapt to topics
  • Kazakh translation pack
  • Italian translation pack
  • Partial Tatar translation pack
  • Logging tweaks
  • Add caller field to inline units
  • Add ability to get module help by command alias
  • Add ability to decorate aliases with @loader.command decorator
  • Add credits to developers and translators
  • Add support for multiple usernames
  • Add topic guesser in send_message, send_file in order for old modules to work properly
  • Add local storage fallback in case remote end is not available
  • Add self.invoke method for modules
  • Fresh Christmas web design
  • EULA warning for lavHost and MiyaHost
  • Support for Python 3.10

๐ŸŒ‘ Hikka 1.5.3

  • Add Uzbek, Turkish, German and Spanish translation packs
  • Fix module and command docs not being translated on-the-flight
  • Fix RegExp validator

๐ŸŒ‘ Hikka 1.5.2

  • Change the behavior of @loader.raw_handler decorator to accept starred arguments instead of list-like value

๐ŸŒ‘ Hikka 1.5.1

  • Fix --no-web arg
  • Fix tglog_level config option of module Tester
  • Fix duplicated monkey on login page
  • Fix shit modules with uppercase commands
  • Add physical Enter button to login page on mobile devices
  • Add --proxy-pass arg
  • Add utils.invite_inline_bot method
  • Add utils.iter_attrs method
  • Add @loader.raw_handler decorator
  • Add invite_bot parameter to utils.asset_channel
  • Add support for String validator's min_len and max_len parameters

๐ŸŒ‘ Hikka 1.5.0

  • Fix on_change param processing in config
  • Fix hikka.types.CoreOverwriteError
  • Fix incorrect commit in info for users with multiple origins
  • Fix error with module configs not being updated to values which were set by user
  • Fix core unload and core overwrite errors not being raised correctly
  • Fix config descriptions in APIRatelimiter
  • Fix CoreOverwriteError handling
  • Fix TelegramID validator to work with values between 2^32 and 2^64 - 1
  • Fix web authorization messages being sent twice
  • Fix duplicated animations in web
  • Fix installation banner being shown after auth in web
  • Fix form placeholder button being shown when not necessary
  • Add @loader.tag(thumb_url="") decorator
  • Add new inline help format
  • Add internal method for debug calls (.invoke)
  • Add Internal Debug Method (IDM) to inspect cache (inspect_cache)
  • Add IDM inspect_modules
  • Add IDM clear_cache, clear_entity_cache, clear_fulluser_cache, clear_fullchannel_cache, clear_perms_cache
  • Add IDM reload_core to automatically reload core modules from disk
  • Add ability to create custom IDMs
  • Add fields flags and description to RegExp validator
  • Add fields min_len and max_len to String validator
  • Add Emoji validator
  • Add EntityLike validator
  • Add hikka.validators.MultiChoice
  • Add utils.get_args_html to get arguments of command with HTML
  • Add switch to mute @BotFather only once in hikka inline
  • Add ability to forbid certain tl methods using .config APIRatelimiter
  • Add new web interface design
  • Add new code input design
  • Add new 2fa password input design
  • Add ability to set custom emojis in .info using command .setinfo. In order to use it, remove buttons using config
  • Add full trace locals length limit
  • Rework full trace locals to hashable converter
  • Patch internal help module with bugfixes
  • Clean type-hint mess, document utils and other methods, which were undocumented
  • Remove redundant non-working code from configurator
  • Remove redundant useless params --hosting, --no-nickname, --token, --web-only, --docker-deps-internal
  • Migrate to lazy string interpolation in logging
  • Reformat the whole code to match the desired code style
  • Rename APIRatelimiter -> APILimiter
  • Enable joinChannel and importChatInvite calls-by-external-modules blockage for all users by default
  • Change inline query placeholder to user@hikka:~$ + legacy migration
  • Completely drop Heroku support due to legacy code, limits and removing of free tier
  • Allow user to send code only once to prevent FloodWaits
  • Remove junk collector from tl cacher to keep old records so devs can access them w\o making new requests
  • Remove FTG License in fully changed files
  • Add official GoormIDE support

๐ŸŒ‘ Hikka 1.4.2

  • Fix authorization error

๐ŸŒ‘ Hikka 1.4.1

  • Create new type :obj:hikka.tl_cache.CustomTelegramClient to avoid monkeypatching
  • Add ttl param for :method:hikka.utils.asset_channel
  • Add support for custom branches (e.g. for beta testers and users, who rolled back)
  • Fix automatic modules reactions
  • Fix :method:hikka.inline.utils.Utils._find_caller_sec_map
  • Fix the targeted security rules without time limit
  • Require Hikka-TL >= 1.24.9
  • Refactor document_id of custom emojis
  • Refactor validators to be classes, not functions
  • Refactor typehints

๐ŸŒ‘ Hikka 1.4.0

  • Publish hikka telethon fork and migrate to it in requirements, thereby fixing the deployment error on Heroku
  • Add custom emojis filter to utils.remove_html
  • Fix client.get_perms_cached
  • Fix translation flaw in HikkaSecurity
  • Fix .uninstall_hikka being accessible by sudo
  • Fix utils.find_caller for :method:hikka.inline.utils.Utils._find_caller_sec_map
  • Fix .eval
  • Fix: use old lib if its version is higher than new one
  • Fix grep for messages bigger than 4096 UTF-8 characters
  • Add more animated emojis to modules
  • Add targeted security for users and chats (.tsec)
  • Add support for tg_level in .config Tester
  • Add -f param to .restart and .update
  • Add platform-specific Hikka emojis to premium users
  • Add codepaces to utils.get_named_platform
  • Add Presets core module
  • Add handler for /start command in inlinebot with userbot info
  • Rename func tag to filter due to internal python conflict with dynamically generated methods
  • Partially rework security unit
  • Internal refactoring and typehints
  • Remove custom :obj:BotInlineMessage hook for :method:answer

๐ŸŒ‘ Hikka 1.3.3

  • Fix typo, which broke client.get_fulluser

๐ŸŒ‘ Hikka 1.3.2

  • Add on_change param to loader.ConfigValue
  • Rework commands\inline handlers\callback handlers\watchers registration and unload process
  • Rework tags processing
  • Add junk collector aka reloader to Modules

๐ŸŒ‘ Hikka 1.3.1

  • Add caching to utils.asset_channel
  • Add channel param to utils.asset_channel to actually create a channel, not supergroup
  • Add watcher tags: startswith, endswith, contains, regex, func, from_id, chat_id
  • Add buttons to Choice validator in .config
  • Add new types: PointerList, PointerDict
  • Add db.pointer
  • Add self.pointer to module and library instances
  • Add support for multiaccounting on Heroku
  • Add ability to edit only reply markup or only media of message, w/o touching the actual text
  • Add support for @loader.command-like commands in inline caller finder
  • Add utils.find_caller
  • Add possible cause of error in logs (module and method)
  • Add client.get_perms_cached to cache native client.get_permissions
  • Add client.get_fullchannel with cache
  • Add client.get_fulluser with cache
  • Add exp and force params to client.get_perms_cached and client.get_entity
  • Add exp cached values check in client.get_perms_cached and client.get_entity
  • Add text validation to info (automatically remove broken tags)
  • Add utils.validate_html to remove broken tags from text
  • Change errors format in web to more human-readable
  • Change visible line of traceback in logs to be the last one
  • Fix bug with custom_bot option on installation page
  • Fix RecursionError in entity cacher
  • Fix command execution with space between prefix and command
  • Fix utils.answer for forwarded messages
  • Remove heroku3 from classic requirements, along with heroku installation code snippet
  • Remove termux_requirements.txt
  • Remove legacy self.get migration from strings
  • Move hikka._types to hikka.types with legacy support
  • Remake all core modules to decorators
  • Force custom hikka telethon installation with 144 layer support
  • Add animated emojis to core modules strings
  • Add trigger to toggle the appearence of custom emojis

๐ŸŒ‘ Hikka 1.3.0

  • Patch stats so they correctly recognize links
  • Fix bug when ... is being replaced with .. (unnecessary prefix escape)
  • Add @loader.tag
  • Add watcher tags: no_commands, only_commands, out, in, only_messages, editable, no_media, only_media, only_photos, only_videos, only_audios, only_docs, only_stickers, only_inline, only_channels, only_groups, only_pm. See docs for detailed info
  • Add utils.mime_type to get mime_type of file in message
  • Replace token obtainment mechanism with callback instead of inline
  • Do not cut off prefix in message.message, message.text and message.raw_text
  • Partially rework events processing and dispatching
  • Attempt to fix cached entities mixing up
  • Do not update modules in db when secure boot is active
  • Refactor members getterr
  • Add uptime to .info
  • Refactor .help, add version to single mod help message
  • Fix TypeError in .e when returning tl class instead of object
  • Remove stupid db lock in .e
  • Allow .security and .inlinesec only to owner by default
  • Add support for # requires metatag in libraries
  • Add support for # scope: hikka_min metatag in libraries
  • Send stats of libraries, if enabled in .settings
  • Replace library existence check from source url to classname
  • Add self.inline to libraries
  • Add @loader.command, @loader.watcher, @loader.inline_handler, @loader.callback_handler
  • Add support for multiple watchers
  • Add support for command translate directly in decorator (@loader.command(ru_doc="ะŸั€ะธะฒะตั‚"))
  • Add support for :obj:aiogram.types.Message in utils.get_chat_id
  • Add human-readable error message when trying to unload core module
  • Replace print with logging.info in main script to make url visible in logs
  • Automatically react to module post in developer's channel if possible

๐ŸŒ‘ Hikka 1.2.12

  • Automatically patch reply markup in inline form in the way, that edit stays available anyway
  • Do not unload inline form automatically, keep it for 10 minutes instead
  • Use telethon.utils.resolve_inline_message_id to remove inline unit
  • Add self.request_join
  • Allow developers to declare client_ready without arguments

๐ŸŒ‘ Hikka 1.2.11

  • Add support for lib attribute version (must be defined BEFORE init method)
  • Add self.lookup to libs
  • Add self.allmodules to libs
  • Add self._lib_get to libs
  • Add self._lib_set to libs
  • Add self.get_prefix to libs
  • Add self.tg_id to libs
  • Add client.tg_id to every TelegramClient
  • Add support for hook on_lib_update (invoked when library is being updated by new version)
  • Add adequate library migration with references replacement
  • Add support for markup, generated for messages, sent by bot itself
  • Reformat code with black --preview
  • Automatically send photo as gif if possible in form
  • Update quickstart
  • New fields in HikkaInfo
  • Remove suffix Hikka if user specified it somewhere below
  • New exception handler
  • Fix back button in .config <lib>
  • New .e error format
  • Ignore folder creation error
  • Fix unload error in module without commands
  • Rework aiogram media processing on edit

๐ŸŒ‘ Hikka 1.2.10

  • Completely drop fast_uploader support
  • Add :method:utils.import_lib
  • Add protection for :obj:CheckChatInviteRequest in forbid_joins
  • Add ability to search modules by classname in :method:self.lookup
  • Add anonymous stats of modules loading (YOU CAN DISABLE THEM IN .settings)
  • Add telethon objects formatting in .e
  • Add :obj:loader.SelfSuspend to disable module commands and watcher loading, e.g. if library is unavailable
  • Add migration native modules db storage from strings["name"] to classname. โš ๏ธ Might break some stuff in the beginning in rare cases
  • Fix heroku-specific config error

๐ŸŒ‘ Hikka 1.2.9

  • Small patch which allows developer to specify audio metadata in form and _edit_unit

๐ŸŒ‘ Hikka 1.2.8

  • Add automatic webpage bot unblock in heroku waker
  • Add secure boot feature
  • Update native heroku postgre database saving method
  • Add easter egg to .ping
  • Add platform-specific errors while installing requirements
  • Change postgresql column id datatype from int32 to int64 + legacy migration
  • Change proxypass tunnel behavior - now it only opens on setup and via command .weburl
  • Lavhost-specific web url
  • Meaningful errors in web
  • โš ๏ธ Drop fast_uploader support. It will be completely removed in next major update
  • Deepsource fixes
  • Multiple languages with priority

๐ŸŒ‘ Hikka 1.2.7

  • Add automatic proxy pass
  • Fix --no-web argument parsing
  • Fix localization error in updater
  • Print out only INFO statements to stdout
  • Add rotating file handler (logfile with max 10MB size)
  • Show web endpoint on startup if available
  • Fix gallery inline_message_id error
  • Add support for custom_buttons in inline.list
  • Add support for custom_buttons in inline.gallery
  • Smart fast_uploader (Do not use hard download on files smaller than 1 MB)
  • Attempt to parse unit_id from passed InlineCall object in inline._delete_unit_message
  • Reformatting
  • Change typehints
  • Show list-like values in formatted way in config
  • Properly escape html in config
  • Split config to pages and categories (core \ non-core)
  • Properly edit dictionary config (iter)
  • Properly remove items from series options through built-in configurator
  • Remove warning from web by replacing coroutine generation with functools.partial

๐ŸŒ‘ Hikka 1.2.6

  • Fix processing of # scope: hikka_min
  • Add forbid_joins.py (to use it, download module from official repo with the same name)

๐ŸŒ‘ Hikka 1.2.5

  • Add additional exit on restart to avoid port block
  • Add unloaded module name on .unloadmod
  • Add banner_url config var to HikkaInfo
  • Add loader.validators.Hidden
  • Add websockets dependency, so users can load hikarichat on Heroku
  • Add reply_markup kwarg to utils.answer. This will automatically add buttons to plain message or edit buttons of inline unit
  • Add suggestion to join developer's channel on module load if available
  • Add client.force_get_entity to bypass Hikka Cacher
  • Add clickable link to loaded module message if specified meta developer is channel
  • Add support of action attributes for buttons ("action": "close", "action": "unload", "action": "answer")
  • Add log splitter between different clients of instance (if possible)
  • Fix inline events IndexError
  • Fix text in inline input
  • Fix translation issue in HikkaConfig
  • Fix .dump
  • Fix modules list reset if you perform .dlmod when userbot is not yet fully loaded
  • Update links in README
  • Remove nalinor from official repos until new modules appear

๐ŸŒ‘ Hikka 1.2.4

  • Show current options in module config
  • Add new validators: loader.validators.Union, loader.validators.NoneType
  • Add additional Heroku deps
  • Fix load_module reattempt
  • Reorder database read-writes to make postgres the ladder
  • Make redis optional for non-heroku users
  • Add source to Pipfile
  • New Heroku dependencies list in Pipfile
  • External Redis database support
  • Mask more options in logs and .e output
  • Remove psycopg2 from requirements.txt
  • New installation banner
  • Add automatic blob->raw convertion in loader
  • Add banner with Hikka installation status
  • Reorder config saving in web
  • Fix Unauthorized error on Heroku

๐ŸŒ‘ Hikka 1.2.3

  • Add field action to inline buttons. You can pass there close to close inline form, unload to unload it from memory, answer & text | show_alert to answer callback query with message
  • Update docstrings in inline to match unified format
  • Add surrogate error ignorance in dispatcher
  • Fix :obj:EntityCache caching username @None
  • Return :obj:InlineMessage in hikka.inline.gallery.Gallery.gallery
  • Fix typo in docstring

๐ŸŒ‘ Hikka 1.2.2

  • Update gitignore so git doesn't count shit on heroku
  • Visual heroku fixes in updater
  • Deepsource fixes
  • Add utils.get_entity_url, utils.get_message_link, utils.remove_html, utils.get_kwargs
  • Disable modules debugging on heroku
  • Add .nonickusers, .nonickcmds, .nonickchats
  • Update blacklist command docs
  • Fix grep removing everything in <...>
  • Add loader.validators.RegExp
  • Automatically convert None to empty string \ zero integer etc., if validator is specified
  • More meaningful errors in inline_handlers
  • More meaningful errors in self.inline.form, self.inline.gallery, self.inline.list on user-side
  • Allow editing\adding media to form via call.edit. Currently supported: photo, file, video, audio, gif

๐ŸŒ‘ Hikka 1.2.1

  • Add termux specific requirements
  • Refactor heroku.py app searching algorithm
  • Refactor postgresql database saving process
  • Fix heroku restart message not being edited
  • Add heroku waker
  • Make hikka- app naming optional

๐ŸŒ‘ Hikka 1.2.0

  • Add full-featured Heroku support with additional buildpacks
  • Notify which dependencies are being installed in .dlmod
  • Additional GeekTG compat layer
  • Fix logging chat
  • Rework sessions storage and retrieval
  • Rework session processing in web

๐ŸŒ˜ Patch released

  • Allow adding and removing multiple items in config
  • Add ast.literal_eval to config
  • Add explicit typecheck for mod.config

๐ŸŒ‘ Hikka 1.1.28

  • Fix non-working param share_link in loader
  • Assure logging bot is a member of logchat
  • Do not store partial phone number in session, only ID
  • Rework fast uploader so more types can be passed. For more information check code docstrings and typehints
  • Rework installer so it properly displays which action is currently happening
  • Fix Series not accepting one item
  • Show upcoming commit in update and warn if update is not required
  • Add reset to default button to config
  • Merge hikka_logger.py with test.py
  • Localization
  • Allow opening options of specific mod via arguments in .config
  • Add add and remove buttons to Series params
  • Do not unload form immediately, if ttl param was passed explicitly

๐ŸŒ‘ Hikka 1.1.27

  • Reorder the steps of parsing in loader.validators.Series
  • Fix aliases (yet another time)
  • Fix minor bug in loader.validators.Series, which allowed to put empty string in it
  • Fix some translation issues and type conversion ones
  • Fix incorrect modules loading if multiple links end with specified name
  • Fix type conversion bug in loader.validators.String
  • Fix typehints flaws
  • Add additional fields to inline.form: gif, file, mime\_type, video, location, audio
  • Add reset-to-default action, if config is invalid while loading the userbot to prevent fall
  • Add verification emoji to input to let user know, that new value was processed
  • Add badge showing how much the last restart took
  • Add min_len, max_len, fixed_len params to loader.validators.Series
  • Add option to show downloaded module link in result message of .dlmod
  • Add explicit database save after applying new config
  • Add hint to web
  • Add code of conduct
  • Add changelog
  • Remove redundant code in database.py as it literally does nothing

๐ŸŒ‘ Hikka 1.1.26

  • Hopefully finally fix aliases being reset after restart
  • Remove redundant internal hook _client_ready2
  • Show user evaluated version of config value instead of pre-comp one
  • Add validator for each item to Series, remove separator
  • Add new validator: TelegramID

๐ŸŒ‘ Hikka 1.1.25

  • Add separate messages on restart and full_restart. Second one is shown, when all modules are loaded
  • Replace .uninstall_hikka with full uninstallation (remove bot, asset chats and folder)
  • Suggest update if it is required by module
  • New validator: Float
  • Buttons in .config of option is a boolean value
  • Drop support of argument positive in loader.validators.Integer as it can be easily replaced with minimum=0
  • Update semantic generator in validators
  • Yet another protection from monkey-patching

๐ŸŒ‘ Hikka 1.1.24

  • Add String and Link validators
  • Fix Series validator
  • Reformat core modules to use validators

๐ŸŒ‘ Hikka 1.1.23

  • Add config validators (loader.validators, Boolean, Integer, Choice, Series)
  • Change info layout
  • Add .uninstall_hikka
  • Add .clearlogs
  • Refactor code
  • Fix minor bugs
  • Fix aliases being reset after restart (aliases will now be available only when userbot is fully loaded)

๐ŸŒ‘ Hikka 1.1.22

  • Fix bugs related to web, more specifically: Session save timing, adding more than 1 account and proper restart
  • Rework Dockerfiles so they work properly
  • Add uvloop so the asyncio runs faster
  • Add Docker badge to info
  • Improve Okteto performance by adjusting settings in okteto-stack.yml
  • New ascii_faces in utils
  • Typehints update
  • Fix Okteto pinger messages removal

๐ŸŒ‘ Hikka 1.1.21

  • Fix translation typos
  • Add nonick suggestion when adding user to group
  • Add entity caching

๐ŸŒ‘ Hikka 1.1.20

  • Add legacy fs modules migration
  • Add ready asyncio Event to help track userbot loading process from outside
  • Replace logging in loader with module-dependent one
  • Fix some bugs and bug-risk issues
  • Send big logs as file, rather than an infinite series of messages
  • HTML-escape # meta developer:
  • Make self.animate available for core modules and modules, loaded from file

๐ŸŒ‘ Hikka 1.1.19

  • Fix infinite loops
  • Add client-specific check of fs modules
  • Use classname of module, if it is possible to parse it with ast
  • Rework infinite loops stopping and modules instance placement

๐ŸŒ‘ Hikka 1.1.18

  • Add notification about not exact match in help
  • Add automatic progress bar generation to self.fast_upload and self.fast_download
  • Make Mod ending in modules class name not mandatory

๐ŸŒ‘ Hikka 1.1.17

  • Fix some weird looking code
  • Fix some emojies and translation issues
  • Add native lavHost support (.restart, .update) via internal API
  • Add utils.get_lang_flag()

๐ŸŒ‘ Hikka 1.1.16

  • Fix config docstrings and html escaping
  • Fix typehints
  • Fix some security staff
  • Add additional bot username check
  • Add additional foolchecks
  • Migrate to walrus operator where necessary
  • Remove redundant code block
  • Add default aiogram parse mode
  • Rename some core stuff which was not supposed to be used by external developers

๐ŸŒ‘ Hikka 1.1.15

  • Add automatic database autofix and rollback if database was broken by module
  • Fix translation issues
  • Warn user, if he tries to view .help when userbot is not yet fully loaded
  • Create alias for _generate_markup (generate_markup)
  • Fix modules which are deleting from helphide
  • Automatically save db if it was edited via classic dictionary methods

๐ŸŒ‘ Hikka 1.1.14

  • Fix utils.asset_channel()'s archive param
  • Fix defect, which forced installation from additional trusted repo, rather than from primary one if the file names are matched
  • Add avatar to utils.asset_channel() which automatically sets chat pic on creation (be careful, bc it leads to floodwaits, if you do it often)
  • Add automatic hikka folder processing
  • Add avatars to all official repo modules, which require asset chats (and add them to hikka folder)
  • Rework database assets chat processing
  • Replace some minor stuff like texts and emojies
  • Force many core modules to use self.get\self.set rather than digging the db
  • Add .fconfig command to forcefully set known config value if it doesn't fit in Telegram query
  • Add dataclasses for module config (read the docs for more info), bc old way is blasphemy
  • Automatically save config value if it was set to module self.config[option] = value
  • Add utils.is_serializable(), utils.set_avatar()
  • Send very large (over 4096*10 symbols) output in a file rather than in an inline list

๐ŸŒ‘ Hikka 1.1.13

  • Fix processing commands on behalf of channel
  • Fix .settings Restart and Update
  • Add warning in call.edit(), if message was sent w\o buttons, ergo Telegram won't allow to edit this message
  • Add --force restart
  • Add ability to customize .info (this is only your problem, if you break something)
  • Properly censor known tokens in logs
  • Replace regex check in utils.check_url() with urllib parser

๐ŸŒ‘ Hikka 1.1.12

  • Consider avoiding redundant requests to TG API in order to get the client id and rather using self._tg_id, which is now available for all modules

๐ŸŒ‘ Hikka 1.1.11

  • Add fast uploader (self.fast_upload, self.fast_download)
  • Fix translations

๐ŸŒ‘ Hikka 1.1.10

  • Add ability to download modules from many additional repos (e.g. you can download weather by morisummer via just .dlmod weather, and also list all available repos via .dlmod)

๐ŸŒ‘ Hikka 1.1.9

  • Fix _generate_markup in order that it automatically sets up callback hooks to _custom_map if callback was passed in buttons
  • Add switch_inline_query and switch_inline_query_current_chat parsers
  • Fix minor issues

๐ŸŒ‘ Hikka 1.1.8

  • Stuff, related to translation issues
  • Add self.get_prefix() to all modules, which returns current command prefix
  • Add possibility to silently self-unload mod, e.g if some condition is not matched. Usecase can be found in modules/okteto.py
  • Add async def on_dlmod(self, client: "TelegramClient", db: "database.Database") handling. This can be e.g. used to subscribe to module's author's channel
  • Rework Okteto Pinger, so it removes messages, if userbot is installed on other platform and so it even works
  • Add trusted developers to quickstart message
  • Automatically switch language via quickstart message button

๐ŸŒ‘ Hikka 1.1.7

  • Add self.animate function to all modules, which allows you to easily create fancy animations

๐ŸŒ‘ Hikka 1.1.6

  • Allow and process callback field in result of inline query answer. You can also use this in your own functions. Simply pass prepare_callbacks=True to _generate_markup
  • Generate InlineCall object on _custom_map handlers

๐ŸŒ‘ Hikka 1.1.5

  • Minor update: Allow passing disable_security and always_allow to buttons directly

๐ŸŒ‘ Hikka 1.1.4

  • Ability to set inline bot username on setup (in web interface)
  • Fix inline help
  • Add more debug info to logs
  • Add attribute status to loops
  • Fix HikkaDL link parsing
  • Suggest enabling value in bounding mask if it is not
  • Mask tokens in logs
  • Add utils.get_git_hash()
  • Add debugging mode for developers

๐ŸŒ‘ Hikka 1.1.3

  • Finally (hopefully) fix config
  • Minor bug fixes related to inline form processing

๐ŸŒ‘ Hikka 1.1.2

  • Add @loader.loop, which provides developers access to easy-to-make infinite loops. Wait for developers docs to update for more info

๐ŸŒ‘ Hikka 1.1.1

  • Drop Uniborg and Raphielgang compatibility layer. More info in 2d525ab
  • Minor bug fixes

๐ŸŒ‘ Hikka 1.1.0

  • Make inline commands' docstrings translatable
  • Introducing HikkaDynamicTranslate - the possibility for developers to translate their own modules to other language without usage of native translates
  • Rework translates system, because ยซtranslate channels wutยฟยป. Now translate pack can be loaded from disk or from web
  • Add utils.check_url
  • Get rid of babel
  • Add IP address and possible cities to web auth popup
  • Add web auth popup ratelimit
  • Automatically delete web auth flow when timeout's exceeded
  • Adapt core modules so they send plain text message, if unable to send inline
  • New type: InlineMessage
  • Rework type InlineCall
  • Make it so the forms, lists and galleries return editable InlineMessage
  • Return a single answerable value from utils.answer, not a list
  • Ensure that inline unit is actually being unloaded
  • Refactor inline - remove redundant arguments, rename some core methods
  • Fix userbot crash when using galleries' slideshow for a long time
  • Rework slideshow so it runs in the background
  • Fix here, fix there, fix somewhere...

๐ŸŒ‘ Hikka 1.0.29

  • Add option to control inline and callback handlers' security via loader decorators, including brand new @loader.inline_everyone
  • Refactor HikkaSecurity, especially the bounding mask control

๐ŸŒ‘ Hikka 1.0.28

  • Add silent param to inline.form, inline.gallery, inline.list
  • Add photo param to inline.form
  • Add URL validator to inline._generate_markup
  • Ignore MessageIdInvalidError in .e

๐ŸŒ‘ Hikka 1.0.27

Thankfully to @bsolute, now we have a cool smart_split in utils. The messages are split without loosing formatting and emojies, preferably on line breakes / spaces.

๐ŸŒ‘ Hikka 1.0.26

  • Add utils.smart_split which splits message in chunks of chunk_size, keeping parse_mode and entities in a right way (relocates 'em)
  • If response of utils.answer is too big to be sent in one particular message, it will be split in chunks of 4096 and sent via inline.list

๐ŸŒ‘ Hikka 1.0.25

  • Add disable_security to inline forms, lists and galleries

๐ŸŒ‘ Hikka 1.0.24

  • Okteto fixes (persistent uri, fix webpage)
  • Add utils.dnd, which allows to mute and archive peer
  • Security fixes for groups (not super\mega groups)
  • Minor bug fixes

๐ŸŒ‘ Hikka 1.0.23

  • Add ability to disable HikkaDL natively
  • Fix Updater so it works if you have troubles with inline mode

๐ŸŒ‘ Hikka 1.0.22

Add HikkaDL module to use inline download buttons in verified channels

๐ŸŒ‘ Hikka 1.0.21

A lot of stuff: web fixes, bug fixes, automatic seamless userbot restart when adding new account in web, replace emojies, add inline list feature, fix types name conflict and I don't remember other fixes, read code

๐ŸŒ‘ Hikka 1.0.20

  • Allow passing reply_markup field to InlineQuery's result
  • Refactor reply markup parser so it accepts more formats of inline markup

๐ŸŒ‘ Hikka 1.0.19

  • Allow developers to pass InlineQuery result via return operator in inline handlers. Read the docs for more info
  • Move query_gallery to a separate module

๐ŸŒ‘ Hikka 1.0.18

  • Add silent and archive params to utils.asset_channel.
  • Remake logging so it become native with BotLogger.
  • Inject BotLogger analog directly

๐ŸŒ‘ Hikka 1.0.17

  • Add ability to set up inline commands' security map (only owner, sudo, support and everyone, because other permissions are inaccessible when processing inline query).
  • Add database serializeability check to avoid JSON-serialization problems if unserializable object is being stored in db.
  • Minor bugfixes

๐ŸŒ‘ Hikka 1.0.16

  • Full support of Okteto cloud deployment inculding persistent data storage (additional volume is created)
  • Fix automatic waker for container

๐ŸŒ‘ Hikka 1.0.15

  • Add more errors to query aka query.e500()

๐ŸŒ‘ Hikka 1.0.14

  • Add gallery slideshow

๐ŸŒ‘ Hikka 1.0.13

  • Include command prefix in inline info.
  • Fix --no-web.
  • Suggest to save modules to filesystem

๐ŸŒ‘ Hikka 1.0.12

  • Optimize forms, galleries and custom_map storage by ommiting keys with default values and dynamically generate them.
  • Add feature to inherit command-caller permissions on form and gallery (crutchy).
  • Minor improvements and bug fixes

๐ŸŒ‘ Hikka 1.0.11

  • Add inline.query_gallery to add ability to call inline gallery via inline query.
  • Add e404 attribute to InlineQuery, which should be shown, that no results were found

๐ŸŒ‘ Hikka 1.0.10

  • Add feature to send gifs in inline galleries (gif param).
  • Make argument caption of inline gallery not mandatory

๐ŸŒ‘ Hikka 1.0.9

  • Full inline structure rework.
  • Split this madness into separate modules (InlineUnits), which extend the main unit - InlineManager.
  • Compatibility layer is not main priority.

๐ŸŒ‘ Hikka 1.0.8

  • Code refactoring
  • Minor bug fixes
  • Rewrite security

๐ŸŒ‘ Hikka 1.0.7

  • Massive inline galleries update, memoization, back button, preloading and other features.
  • Fix some minor bugs, add ascii_face to utils

๐ŸŒ‘ Hikka 1.0.6

  • Add welcome message, triggered when userbot is installed

๐ŸŒ‘ Hikka 1.0.5

  • Add gallery memoization (ability to close gallery and scroll it back)

๐ŸŒ‘ Hikka 1.0.4

  • Add Okteto pinger, which will wake the pod up, when it goes to sleep

๐ŸŒ‘ Hikka 1.0.3

  • Fix a lot of stuff in web
  • Add new features to web
  • Merge root and initial_root
  • Remove trailing whitespaces

๐ŸŒ‘ Hikka 1.0.2

  • Full restructure of core code
  • Refactor web
  • Create new active bg

๐ŸŒ‘ Hikka 1.0.1

  • Drop heroku support
  • Remove redundant code
  • Remake badge
  • Remake installer