From fb91501b94368b10d59625f91fc5c1a10e16ca4d Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Wed, 23 Aug 2017 22:41:47 +0200 Subject: [PATCH] Update 2017-08-23T20:41:41.358Z --- js/app.js | 2 +- js/locales/de-de.json | 12 +++++++++ js/locales/en-us.json | 1 + js/locales/es-es.json | 12 +++++++++ js/locales/it-it.json | 12 +++++++++ js/locales/nl-nl.json | 12 +++++++++ js/locales/pt-br.json | 12 +++++++++ js/locales/ru-ru.json | 12 +++++++++ service_worker.js | 2 +- webogram.appcache | 60 +++++++++++++++++++++---------------------- 10 files changed, 105 insertions(+), 32 deletions(-) diff --git a/js/app.js b/js/app.js index fb15cb00..d2756a8f 100644 --- a/js/app.js +++ b/js/app.js @@ -63,7 +63,7 @@ i.length>r&&!a.indexOf(i)&&(r=i.length,o=h(Config.CountryCodes[t][1]+"_raw"));e. n.$broadcast("ui_message_send")}function y(){var e=n.draftMessage.text;e=g.parseEmojis(e),p.editMessage(V,e).then(function(){V=!1,k(),n.$broadcast("ui_message_send"),i(function(){n.$broadcast("ui_peer_reply")})})}function b(){var e=n.curDialog.peerID;if(!e)return safeReplaceObject(n.mentions,{}),void n.$broadcast("mentions_update");var i,a=[],r=SearchIndexManager.createIndex(),s=f.getPopularBots().then(function(e){var t=[];return angular.forEach(e,function(e){t.push(e.id)}),t});i=e<0?o.getChatFull(-e).then(function(e){var t=(e.participants||{}).participants||[],n=[];return angular.forEach(t,function(e){n.push(e.user_id)}),n}):t.when([]),t.all({pop:s,chat:i}).then(function(e){var t={},i=e.pop.concat(e.chat);angular.forEach(i,function(e){t[e]||(t[e]=!0,a.push(l.getUser(e)),SearchIndexManager.indexObject(e,l.getUserSearchText(e),r))}),safeReplaceObject(n.mentions,{users:a,index:r}),n.$broadcast("mentions_update")})}function w(){var e=n.curDialog.peerID;return e?void o.getPeerBots(e).then(function(t){if(!t.length)return safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update");var i=e<0,a=[],r=SearchIndexManager.createIndex();angular.forEach(t,function(e){var t="";if(i){var n=l.getUser(e.id);n&&n.username&&(t+="@"+n.username)}var o=l.getUserSearchText(e.id);angular.forEach(e.commands,function(n,i){var s="/"+i+t;a.push({botID:e.id,value:s,rDescription:g.wrapRichText(n,{noLinks:!0,noLineBreaks:!0})}),SearchIndexManager.indexObject(s,o+" "+i+" "+n,r)})}),safeReplaceObject(n.commands,{list:a,index:r}),n.$broadcast("mentions_update")}):(safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update"))}function k(e,t){var a=t?c.getPeerID(t):0;if(e!=t&&a)return n.$broadcast("ui_message_before_send"),void i(function(){h.syncDraft(a),k()});if(V=!1,b(),w(),E(),P(),delete n.draftMessage.inlineProgress,n.$broadcast("inline_results",!1),j){if(j==n.curDialog.peer)return n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),void n.$broadcast("ui_peer_draft");j=!1}$(),M()}function M(){if(n.curDialog.peerID){var e;e=V?p.getMessageEditData(V).then(function(e){return e.replyToMsgID=V,e},function(e){return console.warn(e),V=!1,M(),t.reject()}):h.getDraft(n.curDialog.peerID),e.then(function(e){if(n.draftMessage.type=V?"edit":"new",n.draftMessage.text=e?e.text:"",n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),e.replyToMsgID){var t=e.replyToMsgID;A(t)}else E();n.$broadcast("ui_peer_draft")})}else n.draftMessage.text="",n.$broadcast("ui_peer_draft")}function S(e,t){if(console.log(dT(),"apply draft attach",t),t&&t._)if("share_url"==t._){var a=t.url,r=t.text||" ";j=n.curDialog.peer,i(function(){n.draftMessage.text=a+"\n"+r,n.$broadcast("ui_peer_draft",{customSelection:[a+"\n",r,""]})},1e3)}else if("fwd_messages"==t._)j=n.curDialog.peer,i(function(){n.draftMessage.fwdMessages=t.id,n.$broadcast("ui_peer_reply")},100);else if("inline_query"==t._){var o=t.mention,s=t.query;j=n.curDialog.peer,i(function(){n.draftMessage.text=o+" "+s,n.$broadcast("ui_peer_draft",{customSelection:[o+" "+s,"",""]})},1e3)}}function A(e,t){return V&&t?void E():(n.draftMessage.replyToMsgID=e,n.$broadcast("ui_peer_reply"),H=!1,void(t&&!V&&h.changeDraft(n.curDialog.peerID,{text:n.draftMessage.text,replyToMsgID:e})))}function T(e){V=e,M()}function C(){return!(V||!n.curDialog.peerID)&&void p.getHistory(n.curDialog.peerID).then(function(e){for(var t,n=0;n0,t.nav.hasPrev=b||n<_.length-1,t.canForward=t.canDelete=t.messageID>0}function p(n){var i=_.indexOf(t.messageID),o=i>=0?i+n:0,s=++w,l=o>=_.length?f():e.when();l.then(function(){if(s==w){var e=_[o],i=r.getMessage(e),l=i&&i.media&&(i.media.photo&&i.media.photo.id||i.media.webpage&&i.media.webpage.photo&&i.media.webpage.photo.id);if(!l)return void console.error("Invalid photo message",o,_,e,i);t.messageID=e,t.photoID=l,t.photo=a.wrapForFull(t.photoID),v[t.messageID]=!0,u(),n>0&&b&&_.indexOf(e)+1>=_.length?f():d(n)}})}function f(){return k?k:k=r.getSearch(m,h,g,y).then(function(t){return t.history.length?(y=t.history[t.history.length-1],_=_.concat(t.history),b=_.length=0&&(_=e.history,y=_[_.length-1],u(),d(1)),f()},f);var w=0,k=!1}}]).controller("UserpicModalController",["$q","$scope","$rootScope","$modalInstance","MtpApiManager","AppPhotosManager","AppUsersManager","AppPeersManager","AppMessagesManager","ApiUpdatesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u){function p(n,i){var a=g.indexOf(t.photoID),o=a>=0?a+n:0,s=++w,l=o>=g.length?m():e.when();l.then(function(){if(s==w){t.photoID=g[o],t.photo=r.wrapForFull(t.photoID),t.photo.thumb={location:r.choosePhotoSize(t.photo,0,0).location};var e;i&&(g.splice(a,1),e=t.count-1),h(e),v[t.photoID]=!0,h(),n>0&&b&&g.indexOf(t.photoID)+1>=g.length?m():f(n)}})}function f(e){var n=e<0?[-1,-2]:[1,2],i=g.indexOf(t.photoID);angular.forEach(n,function(e){var t=g[i+e];void 0!==t&&void 0===v[t]&&(v[t]=!0,r.preloadPhoto(t))})}function m(){return k?k:k=r.getUserPhotos(t.userID,_).then(function(t){return t.photos.length?(_=t.photos[t.photos.length-1],g=g.concat(t.photos),b=g.length0,t.nav.hasPrev=b||n=0&&(g=e.photos,_=g[g.length-1]),b=g.length=200,(Config.Modes.test||Config.Modes.debug)&&(e.needMigrate=!0),p.savePeerSettings(-e.chatID,t.notify_settings),p.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void p.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,p.updatePeerSettings(-e.chatID,n)})})})}),e.leaveGroup=function(){_.confirm({type:"HISTORY_LEAVE_AND_FLUSH"}).then(function(){d.invokeApi("messages.deleteChatUser",{chat_id:s.getChatInput(e.chatID),user_id:{_:"inputUserSelf"}}).then(function(i){h.processUpdateMessage(i),f.flushHistory(-e.chatID).then(function(){t.close(),n.url("/im")})})})},e.inviteToGroup=function(){var t=[];angular.forEach(e.chatFull.participants.participants,function(e){t.push(e.user_id)}),g.selectContacts({disabled:t}).then(function(t){angular.forEach(t,function(t){d.invokeApi("messages.addChatUser",{chat_id:s.getChatInput(e.chatID),user_id:o.getUserInput(t),fwd_limit:100}).then(function(e){h.processUpdateMessage(e)})}),a.$broadcast("history_focus",{peerString:e.chatFull.peerString})})},e.migrateToSuperGroup=function(){_.confirm({type:"SUPERGROUP_MIGRATE"}).then(function(){d.invokeApi("messages.migrateChat",{chat_id:s.getChatInput(e.chatID)}).then(v)})},e.kickFromGroup=function(t){d.invokeApi("messages.deleteChatUser",{chat_id:s.getChatInput(e.chatID),user_id:o.getUserInput(t)}).then(v)},e.flushHistory=function(i){_.confirm({type:i?"HISTORY_FLUSH":"HISTORY_FLUSH_AND_DELETE"}).then(function(){f.flushHistory(-e.chatID,i).then(function(){i?a.$broadcast("history_focus",{peerString:e.chatFull.peerString}):(t.close(),n.url("/im"))})})},e.inviteViaLink=function(){var t=a.$new();t.chatID=e.chatID,r.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:t,windowClass:"md_simple_modal_window"})},e.photo={},e.$watch("photo.file",y),e.deletePhoto=function(){e.photo.updating=!0,d.invokeApi("messages.editChatPhoto",{chat_id:s.getChatInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(v)["finally"](function(){e.photo.updating=!1})},e.editTitle=function(){var t=a.$new();t.chatID=e.chatID,r.open({templateUrl:templateUrl("chat_edit_modal"),controller:"ChatEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.hasRights=function(t){return s.hasRights(e.chatID,t)}}]).controller("ChannelModalController",["$scope","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","AppProfileManager","AppPhotosManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h){function g(t){f.processUpdateMessage(t),n.$broadcast("history_focus",{peerString:e.chatFull.peerString})}function _(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,c.uploadFile(t).then(function(t){return l.invokeApi("channels.editPhoto",{channel:r.getChannelInput(e.chatID),photo:{_:"inputChatUploadedPhoto",file:t}}).then(g)})["finally"](function(){e.photo.updating=!1}))}e.chatFull=r.wrapForFull(e.chatID,{}),e.settings={notifications:!0},e.isMegagroup=r.isMegagroup(e.chatID),o.getChannelFull(e.chatID,!0).then(function(t){e.chatFull=r.wrapForFull(e.chatID,t),e.$broadcast("ui_height"),d.savePeerSettings(-e.chatID,t.notify_settings),d.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void d.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,d.updatePeerSettings(-e.chatID,n)})})}),e.chatFull.chat&&e.chatFull.chat.pFlags.creator&&e.chatFull.exported_invite&&"chatInviteEmpty"==e.chatFull.exported_invite._&&o.getChatInviteLink(e.chatID,!0).then(function(t){e.chatFull.exported_invite={_:"chatInviteExported",link:t}})}),e.leaveChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_LEAVE":"CHANNEL_LEAVE"}).then(function(){l.invokeApi("channels.leaveChannel",{channel:r.getChannelInput(e.chatID)}).then(g)})},e.deleteChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_DELETE":"CHANNEL_DELETE"}).then(function(){l.invokeApi("channels.deleteChannel",{channel:r.getChannelInput(e.chatID)}).then(g)})},e.joinChannel=function(){l.invokeApi("channels.joinChannel",{channel:r.getChannelInput(e.chatID)}).then(g)},e.inviteToChannel=function(){var t=[];angular.forEach((e.chatFull.participants||{}).participants||[],function(e){t.push(e.user_id)}),m.selectContacts({disabled:t}).then(function(t){var n=[];angular.forEach(t,function(e){n.push(a.getUserInput(e))}),l.invokeApi("channels.inviteToChannel",{channel:r.getChannelInput(e.chatID),users:n}).then(g)})},e.kickFromChannel=function(t){l.invokeApi("channels.kickFromChannel",{channel:r.getChannelInput(e.chatID),user_id:a.getUserInput(t),kicked:!0}).then(g)},e.shareLink=function(t){var a=n.$new();return a.chatID=e.chatID,i.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:a,windowClass:"md_simple_modal_window"}),cancelEvent(t)},e.photo={},e.$watch("photo.file",_),e.deletePhoto=function(){e.photo.updating=!0,l.invokeApi("channels.editPhoto",{channel:r.getChannelInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(g)["finally"](function(){e.photo.updating=!1})},e.editChannel=function(){var t=n.$new();t.chatID=e.chatID,i.open({templateUrl:templateUrl(e.isMegagroup?"megagroup_edit_modal":"channel_edit_modal"),controller:"ChannelEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.goToHistory=function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})},e.hasRights=function(t){return r.hasRights(e.chatID,t)}}]).controller("SettingsModalController",["$rootScope","$scope","$timeout","$modal","AppUsersManager","AppChatsManager","AppPhotosManager","MtpApiManager","Storage","NotificationsManager","MtpApiFileManager","PasswordManager","ApiUpdatesManager","ChangelogNotifyService","LayoutSwitchService","WebPushApiManager","AppRuntimeManager","ErrorService","_",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v){function y(){n.cancel(w),w=!1,u.getState().then(function(e){t.password=e,"account.noPassword"==e._&&e.email_unconfirmed_pattern&&!k&&(w=n(y,5e3))})}function b(e){e&&e.type&&0===e.type.indexOf("image")&&(t.photo.updating=!0,d.uploadFile(e).then(function(e){s.invokeApi("photos.uploadProfilePhoto",{file:e,caption:"",geo_point:{_:"inputGeoPointEmpty"}}).then(function(e){a.saveApiUsers(e.users),s.getUserID().then(function(n){o.savePhoto(e.photo,{user_id:n}),p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:a.getUser(n).photo,previous:!0}}),t.photo={}})})})["finally"](function(){delete t.photo.updating}))}t.profile={},t.photo={},t.version=Config.App.version,s.getUserID().then(function(e){t.profile=a.getUser(e)}),s.invokeApi("users.getFullUser",{id:{_:"inputUserSelf"}}).then(function(e){a.saveApiUser(e.user),e.profile_photo&&o.savePhoto(e.profile_photo,{user_id:e.user.id})}),t.notify={volume:.5},t.send={},t.$watch("photo.file",b),t.password={_:"account.noPassword"},y();var w=!1,k=!1;t.changePassword=function(n){if(n=n||{},"cancel_email"==n.action)return _.confirm({type:"PASSWORD_ABORT_SETUP"}).then(function(){u.updateSettings(t.password,{email:""}).then(y)});var a=e.$new();a.password=t.password,angular.extend(a,n);var r=i.open({scope:a,templateUrl:templateUrl("password_update_modal"),controller:"PasswordUpdateModalController",windowClass:"md_simple_modal_window mobile_modal"});r.result["finally"](y)},t.showSessions=function(){i.open({templateUrl:templateUrl("sessions_list_modal"),controller:"SessionsListModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.$on("$destroy",function(){n.cancel(w),k=!0}),t.deletePhoto=function(){t.photo.updating=!0,s.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"}}).then(function(e){s.getUserID().then(function(n){p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:e,previous:!0}}),t.photo={}})})["finally"](function(){delete t.photo.updating})},t.editProfile=function(){i.open({templateUrl:templateUrl("profile_edit_modal"),controller:"ProfileEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.changeUsername=function(){i.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.terminateSessions=function(){_.confirm({type:"TERMINATE_SESSIONS"}).then(function(){s.invokeApi("auth.resetAuthorizations",{})})},l.get("notify_nodesktop","send_ctrlenter","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(i){t.notify.desktop=!i[0],t.send.enter=i[1]?"":"1",t.notify.pushAvailable=h.isAvailable,t.notify.push=!i[5],i[2]!==!1?t.notify.volume=i[2]>0&&i[2]<=1?i[2]:0:t.notify.volume=.5,t.notify.canVibrate=c.getVibrateSupport(),t.notify.vibrate=!i[3],t.notify.preview=!i[4],t.notify.volumeOf4=function(){return 1+Math.ceil((t.notify.volume-.1)/.33)},t.toggleSound=function(){t.notify.volume?t.notify.volume=0:t.notify.volume=.5};var a;t.$watch("notify.volume",function(t,i){t!==i&&(l.set({notify_volume:t}),e.$broadcast("settings_changed"),c.clear(),a&&n.cancel(a),a=n(function(){c.testSound(t)},500))}),t.toggleDesktop=function(){t.notify.desktop=!t.notify.desktop, t.notify.desktop?l.remove("notify_nodesktop"):l.set({notify_nodesktop:!0}),e.$broadcast("settings_changed")},t.togglePush=function(){t.notify.push=!t.notify.push,t.notify.push?l.remove("notify_nopush"):l.set({notify_nopush:!0}),e.$broadcast("settings_changed")},t.togglePreview=function(){t.notify.preview=!t.notify.preview,t.notify.preview?l.remove("notify_nopreview"):l.set({notify_nopreview:!0}),e.$broadcast("settings_changed")},t.toggleVibrate=function(){t.notify.vibrate=!t.notify.vibrate,t.notify.vibrate?l.remove("notify_novibrate"):l.set({notify_novibrate:!0}),e.$broadcast("settings_changed")},t.toggleCtrlEnter=function(n){t.send.enter=n,t.send.enter?l.remove("send_ctrlenter"):l.set({send_ctrlenter:!0}),e.$broadcast("settings_changed")}}),t.openChangelog=function(){f.showChangelog(!1)},t.logOut=function(){_.confirm({type:"LOGOUT"}).then(function(){s.logOut().then(function(){location.hash="/login",g.reload()})})},t.switchBackToDesktop=Config.Mobile&&!Config.Navigator.mobile,t.switchToDesktop=function(){m.switchLayout(!1)}}]).controller("ChangelogModalController",["$scope","$modal",function(e,t){if(e.currentVersion=Config.App.version,!e.lastVersion){var n=e.currentVersion.split(".");e.lastVersion=n[0]+"."+n[1]+"."+Math.max(0,n[2]-1)}e.changelogHidden=!1,e.changelogShown=!1,e.canShowVersion=function(t){if(e.changelogShown)return!0;var n=versionCompare(t,e.lastVersion)>=0;return n||(e.changelogHidden=!0),n},e.showAllVersions=function(){e.changelogShown=!0,e.changelogHidden=!1,e.$emit("ui_height"),e.$broadcast("ui_height")},e.changeUsername=function(){t.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})}}]).controller("ProfileEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,i){e.profile={},e.error={},i.getUserID().then(function(t){var i=n.getUser(t);e.profile={first_name:i.first_name,last_name:i.last_name}}),e.updateProfile=function(){e.profile.updating=!0;var a=3;i.invokeApi("account.updateProfile",{flags:a,first_name:e.profile.first_name||"",last_name:e.profile.last_name||""}).then(function(i){e.error={},n.saveApiUser(i),t.close()},function(n){switch(n.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},n.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},n.handled=!0;break;case"NAME_NOT_MODIFIED":n.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})}}]).controller("UsernameEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,i){e.profile={},e.error={},i.getUserID().then(function(t){var i=n.getUser(t);e.profile={username:i.username}}),e.updateUsername=function(){e.profile.updating=!0,i.invokeApi("account.updateUsername",{username:e.profile.username||""}).then(function(i){e.checked={},n.saveApiUser(i),t.close()},function(e){switch(e.type){case"USERNAME_NOT_MODIFIED":e.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})},e.$watch("profile.username",function(t){return t&&t.length?void i.invokeApi("account.checkUsername",{username:t}).then(function(n){e.profile.username===t&&(n?e.checked={success:!0}:e.checked={error:!0})},function(n){if(e.profile.username===t)switch(n.type){case"USERNAME_INVALID":e.checked={error:!0},n.handled=!0}}):void(e.checked={})})}]).controller("SessionsListModalController",["$scope","$q","$timeout","_","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,i,a,r,o){function s(){n.cancel(l),a.invokeApi("account.getAuthorizations").then(function(t){e.sessionsLoaded=!0,e.authorizations=t.authorizations;for(var i,a=0,r=e.authorizations.length;a=5&&n(function(){i==u&&r.invokeApi("contacts.search",{q:t,limit:10}).then(function(t){o.saveApiUsers(t.users),i==u&&angular.forEach(t.results,function(t){var n=t.user_id;a.indexOf(n)==-1&&e.contacts.push({userID:n,user:o.getUser(n),peerString:o.getUserString(n),found:!0})})},function(e){400==e.code&&(e.handled=!0)})},500)}e.contacts=[],e.foundPeers=[],e.search={},e.slice={limit:20,limitDelta:20};var d,u=0;if(l(),e.disabledContacts={},e.disabled)for(d=0;d0){var t=[];return angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),a.close(t)}},e.deleteSelected=function(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),o.deleteContacts(t).then(function(){e.toggleEdit(!1)})}},e.importContact=function(){o.openImportContact().then(function(e){e&&t.$broadcast("history_focus",{peerString:o.getUserString(e)})})}}]).controller("PeerSelectController",["$scope","$modalInstance","$q","AppPeersManager","ErrorService",function(e,t,n,i,a){e.selectedPeers={},e.selectedPeerIDs=[],e.selectedCount=0,e.shareLinkPromise&&(e.shareLink={loading:!0},e.shareLinkPromise.then(function(t){e.shareLink={url:t}},function(){delete e.shareLink})),e.dialogSelect=function(r){var o;if(!e.multiSelect){var s;if(e.confirm_type){o=i.getPeerID(r);var l=i.getPeer(o);s=a.confirm({type:e.confirm_type,peer_id:o,peer_data:l})}else s=n.when();return void s.then(function(){t.close(r)})}if(o=i.getPeerID(r),e.selectedPeers[o]){delete e.selectedPeers[o],e.selectedCount--;var c=e.selectedPeerIDs.indexOf(o);c>=0&&e.selectedPeerIDs.splice(c,1)}else e.selectedPeers[o]=i.getPeer(o),e.selectedCount++,e.selectedPeerIDs.unshift(o)},e.submitSelected=function(){if(e.selectedCount>0){var n=[];return angular.forEach(e.selectedPeers,function(e,t){n.push(i.getPeerString(t))}),t.close(n)}},e.toggleSearch=function(){e.$broadcast("dialogs_search_toggle")}}]).controller("ChatCreateModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,i,a,r,o){e.group={name:""},e.createGroup=function(){if(e.group.name){e.group.creating=!0;var s=[];return angular.forEach(e.userIDs,function(e){s.push(a.getUserInput(e))}),i.invokeApi("messages.createChat",{title:e.group.name,users:s}).then(function(e){if(o.processUpdateMessage(e),e.updates&&e.updates.length){for(var i,a=0,s=e.updates.length;a5184e5?r=n?"mediumDate":"shortDate":a>432e5&&(r=n?"EEEE":"EEE"),t(i,r)}}]).filter("time",["$filter",function(e){var t={},n=e("date"),i=Config.Mobile?"shortTime":"mediumTime";return function(e){return t[e]?t[e]:t[e]=n(1e3*e,i)}}]).filter("myDate",["$filter",function(e){var t={},n=e("date");return function(e){return t[e]?t[e]:t[e]=n(1e3*e,"fullDate")}}]).filter("duration",[function(){return function(e){e=parseInt(e),isNaN(e)&&(e=0);var t=Math.floor(e/3600),n=Math.floor(e%3600/60),i=e%60,a=(t?t+":":"")+n+":"+i;return a=a.replace(/:(\d(?::|$))/g,":0$1")}}]).filter("durationRemains",["$filter",function(e){var t=e("duration");return function(e,n){return"-"+t(n-e)}}]).filter("phoneNumber",[function(){return function(e){var t=" ";return e=(e||"").replace(/\D/g,""),"7"===e.charAt(0)&&11===e.length?"+"+e.charAt(0)+t+"("+e.substr(1,3)+")"+t+e.substr(4,3)+"-"+e.substr(7,2)+"-"+e.substr(9,2):"+"+e}}]).filter("formatSize",[function(){return function(e,t){if(!e)return"0";if(e<1024)return e+" b";if(e<1048576)return Math.round(e/1024)+" KB";var n=e/1048576;return n=t?n.toFixed(1):Math.round(10*n)/10,n+" MB"}}]).filter("formatSizeProgress",["$filter","_",function(e,t){var n=e("formatSize");return function(e){if(!e.total)return"";var i=n(e.done,!0),a=i.split(" "),r=n(e.total),o=r.split(" ");return o[1]===a[1]?t("format_size_progress_mulitple",{done:a[0],total:o[0],parts:a[1]}):t("format_size_progress",{done:i,total:r})}}]).filter("formatShortNumber",[function(){return function(e){var t;return e?e<1e3?e.toString():e<9e5?(t=e>1e4?1:10,Math.round(e/1e3*t)/t+"K"):(t=e>1e7?1:10,Math.round(e/1e6*t)/t+"M"):"0"}}]).filter("nl2br",[function(){return function(e){return e.replace(/\n/g,"
")}}]).filter("shortUrl",[function(){return function(e){return"string"!=typeof e?e:e.replace(/^https?:\/\//,"").replace(/^www\./,"")}}]).filter("richText",["$filter",function(e){var t=e("linky");return function(e){return t(e,"_blank").replace(/\n| /g,"
")}}]).filter("relativeTime",["$filter","_",function(e,t){var n=t.pluralize("relative_time_pluralize_minutes_ago"),i=t.pluralize("relative_time_pluralize_hours_ago"),a=e("dateOrTime");return function(e){var r=Math.abs(tsNow(!0)-e);if(r<60)return t("relative_time_just_now");if(r<3600){var o=Math.floor(r/60);return n(o)}if(r<86400){var s=Math.floor(r/3600);return i(s)}return a(e,!0)}}]),angular.module("myApp.services").service("AppMessagesManager",["$q","$rootScope","$location","$filter","$timeout","$sce","ApiUpdatesManager","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","AppDocsManager","AppStickersManager","AppMessagesIDsManager","DraftsManager","AppWebPagesManager","AppGamesManager","MtpApiManager","MtpApiFileManager","ServerTimeManager","RichTextProcessor","NotificationsManager","Storage","AppProfileManager","TelegramMeWebService","ErrorService","StatusManager","_",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v,y,b,w,k,M,S,A,T,C){function E(t,n,i){var a=Oe,r=angular.isString(t)&&t.length;if(r){if(!i||Ve.query!==t){Ve.query=t;var o=SearchIndexManager.search(t,je);Ve.dialogs=[],angular.forEach(Oe.dialogs,function(e){o[e.peerID]&&Ve.dialogs.push(e)}),Ve.count=Ve.dialogs.length}a=Ve}else Ve.query=!1;var s=0;if(n>0)for(s=0;sa.dialogs[s].index);s++);return i=i||20,r||tt||a.dialogs.length>=s+i?e.when({dialogs:a.dialogs.slice(s,s+i)}):x(i).then(function(){if(s=0,n>0)for(s=0;sa.dialogs[s].index);s++);return{dialogs:a.dialogs.slice(s,s+i)}})}function $(e){for(var t=0;tg)&&(g=_.date)}var v=m.saveDraft(n,e.draft);v&&v.date>g&&(g=v.date),e.pFlags.pinned&&(g=P()),e.index=D(g),e.peerID=n,R(e,u);var y=d.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";if(d.mid&&d.mid>e[y]&&(d.pFlags.unread=!0),void 0===Re[n]&&!d.deleted){var b={count:null,history:[],pending:[]};b[r>0?"history":"pending"].push(r),r<0&&d.pFlags.unread&&e.unread_count++,Re[n]=b,j(b,d)&&t.$broadcast("history_reply_markup",{peerID:n})}if(w.savePeerSettings(n,e.notify_settings),i&&e.pts&&o.addChannelState(i,e.pts),Config.Modes.packed&&!i&&e.unread_count>0&&Je&&e.top_message>Je&&d.pFlags.unread&&!d.pFlags.out){var k=16&d.flags?d.from_id:n;w.getPeerMuted(k).then(function(e){e||Se(d)})}}function x(e){var n=Oe.dialogs,i=0,r=0,o=0,d=0,u=0;return nt&&(i=nt+y.serverTimeOffset,d=65536*nt,u|=1),_.invokeApi("messages.getDialogs",{flags:u,offset_date:i,offset_id:f.getMessageLocalID(r),offset_peer:c.getInputPeerByID(o),limit:e},{timeout:300}).then(function(e){i||S.setAuthorized(!0),s.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages);var r=!!i,o=!1;e.dialogs.reverse(),angular.forEach(e.dialogs,function(e){I(e),d&&e.index>d&&(dt[e.peerID]=e,o=!0),r||c.isChannel(c.getPeerID(e.peer))||(Me(e.top_message),r=!0)}),e.dialogs.reverse(),(!e.dialogs.length||!e.count||n.length>=e.count)&&(tt=!0),o&&!ct?ct=a(Te,0):t.$broadcast("dialogs_multiupdate",{})})}function P(){return 2147483392+(255&it++)}function D(e){return void 0===e&&(e=tsNow(!0)+y.serverTimeOffset),65536*e+(65535&++at)}function R(e,t){var n=Oe.dialogs,i=$(e.peerID)[1];if(void 0!==i&&n.splice(i,1),t&&!e.pFlags.pinned&&(!nt||t=n[0].index)n.unshift(e);else for(a=0;an[a].index){n.splice(a,0,e);break}}function O(t,n,i,a){var r=c.isChannel(t);r&&c.isMegagroup(t);return _.invokeApi("messages.getHistory",{peer:c.getInputPeerByID(t),offset_id:n?f.getMessageLocalID(n):0,add_offset:a||0,limit:i||0},{timeout:300,noErrorBox:!0}).then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages),r&&o.addChannelState(-t,e.pts);var n=e.messages.length;return n&&e.messages[n-1].deleted&&(e.messages.splice(n-1,1),n--,e.count--),t<0||!s.isBot(t)||n==i&&i0)for(o=0;oa.history[o]);o++);var s=a.history.length;a.history.splice(o,a.history.length-o),angular.forEach(r.messages,function(n){j(a,n)&&t.$broadcast("history_reply_markup",{peerID:e}),a.history.push(n.mid)});var l=a.history.length;i-=l-s;var c=rt[e],d=ot[e],u=void 0!==c||void 0!==d;if(u&&(a.count=Math.max(a.count,l)+1),i>0){if(n=a.history[l-1],u){if(!r.messages.length){if(!d)return a.count=l,!0;n=0,e=d}return N(e,n,i,a)}if(l=0;a--)if(r=xe[n.history[a]],r&&!r.pFlags.out&&r.pFlags.unread){n.unreadOffset=a+1;break}}return e.when(n)}function F(e,n){if(!rt[e]&&!ot[n]&&l.hasChat(-n)){var i=l.getChat(-e);i&&i.migrated_to&&i.migrated_to.channel_id==-n&&(rt[e]=n,ot[n]=e,a(function(){var i=$(e);i.length&&(Oe.dialogs.splice(i[1],1),t.$broadcast("dialog_drop",{peerID:e})),t.$broadcast("dialog_migrate",{migrateFrom:e,migrateTo:n})},100))}}function U(e){if(rt[e])return rt[e]}function B(e,t,n,i,a){rt[e]&&(e=rt[e]);var r=Re[e],o=0,s=!1,l=!1,c=!1;a=a?Math.min(50,a):0,void 0===r&&(r=Re[e]={count:null,history:[],pending:[]}),t<0&&(t=0);var d=!1,u=e;if(ot[e]&&(d=!0,t&&t1){var m=p.unread_count;(c=m>50)?p.read_inbox_max_id?(t=p.read_inbox_max_id,i=16,l=16,n=4):(n=20,l=16,o=m-l):(n=Math.max(10,a,m+2),l=m)}else Config.Mobile&&(n=20)}if(t>0)for(s=!0,o=0;or.history[o]){s=!1;break}if(!s&&(null!==r.count&&r.history.length==r.count||r.history.length>=o+(n||1))){i?(i=Math.min(o,i),o=Math.max(0,o-i),n+=i):n=n||(o?20:a||5);var h=r.history.slice(o,o+n);return!t&&r.pending.length&&(h=r.pending.slice().concat(h)),L(e,{count:r.count,history:h,unreadOffset:l,unreadSkip:c})}return i||n||(n=a||20),s&&(o=0),i||c||t&&r.history.indexOf(t)==-1?(i&&(o=-i,n+=i),O(u,t,n,o).then(function(n){r.count=n.count||n.messages.length,d&&r.count++;var i=[];return angular.forEach(n.messages,function(e){i.push(e.mid)}),!t&&r.pending.length&&(i=r.pending.slice().concat(i)),L(e,{count:r.count,history:i,unreadOffset:l,unreadSkip:c})})):N(e,t,n,r).then(function(){if(o=0,t>0)for(o=0;or.history[o]);o++);var i=r.history.slice(o,o+n);return!t&&r.pending.length&&(i=r.pending.slice().concat(i)),L(e,{count:r.count,history:i,unreadOffset:l,unreadSkip:c})})}function H(e){return(Re[e]||{}).reply_markup||!1}function j(e,t){if(!t.reply_markup&&!t.pFlags.out&&!t.action)return!1;if(t.reply_markup&&"replyInlineMarkup"==t.reply_markup._)return!1;var n=t.reply_markup,i=e.reply_markup;if(n)return!(i&&i.mid>=t.mid)&&(!(n.pFlags.selective&&!(16&t.flags))&&(e.maxOutID&&t.midi.mid||t.mid<0)&&t.message)return i.pFlags.hidden=!0,!0}else(!e.maxOutID||t.mid>e.maxOutID)&&(e.maxOutID=t.mid);return!(!t.action||"messageActionChatDeleteUser"!=t.action._||(i?t.action.user_id!=i.fromID:!s.isBot(t.action.user_id)))&&(e.reply_markup={_:"replyKeyboardHide",mid:t.mid,flags:0,pFlags:{}},!0)}function V(t,n,i,a,r){t=t?parseInt(t):0;var o=[],d=!n,u={peer:t,filter:i},p=d&&angular.equals(qe,u);if(d&&!p&&(qe=u,ze=[]),t&&!a&&!n){var m=Re[t];if(void 0!==m&&m.history.length){var h,g,v,b={},w=r||20;switch(i._){case"inputMessagesFilterPhotos":b.messageMediaPhoto=!0;break;case"inputMessagesFilterPhotoVideo":b.messageMediaPhoto=!0,b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterVideo":b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterDocument":b.messageMediaDocument=!0,h=!1;break;case"inputMessagesFilterVoice":b.messageMediaDocument=!0,h="voice";break;case"inputMessagesFilterRoundVideo":b.messageMediaDocument=!0,h="round";break;default:return e.when({count:0,history:[]})}for(g=0;g=w)break}}if(o.length=w));g++);}if(o.length||1e3==r)return d&&(ze=listMergeSorted(ze,o)),e.when({count:null,history:o});var M;if(t||!n)M=_.invokeApi("messages.search",{flags:0,peer:c.getInputPeerByID(t),q:n||"",filter:i||{_:"inputMessagesFilterEmpty"},min_date:0,max_date:0,limit:r||20,max_id:f.getMessageLocalID(a)||0},{timeout:300,noErrorBox:!0});else{var S=0,A=0,T=0,C=a&&q(a);C&&C.date&&(S=C.date+y.serverTimeOffset,T=C.id,A=pe(C)),M=_.invokeApi("messages.searchGlobal",{q:n,offset_date:S,offset_peer:c.getInputPeerByID(A),offset_id:f.getMessageLocalID(T),limit:r||20},{timeout:300,noErrorBox:!0})}return M.then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages);var t=e.count||e.messages.length;return o=[],angular.forEach(e.messages,function(e){var t=pe(e);if(t<0){var n=l.getChat(-t);n.migrated_to&&F(t,-n.migrated_to.channel_id)}o.push(e.mid)}),d&&(!a||p&&ze.indexOf(a)>=0)&&(ze=listMergeSorted(ze,o)),{count:t,history:o}},function(t){return 400==t.code&&(t.handled=!0),e.reject(t)})}function q(e){return xe[e]||{_:"messageEmpty",deleted:!0,pFlags:{out:!1,unread:!1}}}function z(e){var t=["messageMediaPhoto","messageMediaDocument","messageMediaWebPage","messageMediaPending"]; return!("message"!=e._||e.deleted||e.fwd_from||e.via_bot_id||e.media&&t.indexOf(e.media._)==-1||e.fromID&&s.isBot(e.fromID))&&(!e.media||"messageMediaDocument"!=e.media._||!e.media.document.sticker)}function W(e){if(e<=0||!xe[e])return!1;var t=xe[e];return!(!t||!t.canBeEdited)&&(pe(t)==s.getSelf().id||!(t.date0){var s=l.getChat(t);if(!(s.pFlags.creator||s.pFlags.editor&&s.pFlags.megagroup)){var c=[];if((s.pFlags.editor||s.pFlags.megagroup)&&angular.forEach(e,function(e,n){var a=q(i.mids[t][n]);a.pFlags.out&&c.push(e)}),!c.length)return;e=c}r=_.invokeApi("channels.deleteMessages",{channel:l.getChannelInput(t),id:e}).then(function(n){o.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteChannelMessages",channel_id:t,messages:e,pts:n.pts,pts_count:n.pts_count}})})}else{var d=0;n&&(d|=1),r=_.invokeApi("messages.deleteMessages",{flags:d,id:e}).then(function(t){o.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:e,pts:t.pts,pts_count:t.pts_count}})})}a.push(r)}),e.all(a)}function X(t){var n=f.getMessageIDInfo(t),i=n[0],a=n[1];if(!a)return e.reject();var r=q(t),o=l.getChat(a);return r&&r.pFlags&&r.pFlags.post&&o.username?_.invokeApi("channels.exportMessageLink",{channel:l.getChannelInput(a),id:i}).then(function(e){return e.link}):e.reject()}function J(e){var n=c.isChannel(e),i=Re[e],a=$(e)[0];if(!a||!a.unread_count){if(!i||!i.history.length)return!1;var r,s,d=!1;for(p=i.history.length;p>=0;p--)if(r=i.history[p],s=xe[r],s&&!s.pFlags.out&&s.pFlags.unread){d=!0;break}if(!d)return!1}if(i.readPromise)return i.readPromise;var u;if(u=n?_.invokeApi("channels.readHistory",{channel:l.getChannelInput(-e),max_id:0}):_.invokeApi("messages.readHistory",{peer:c.getInputPeerByID(e),max_id:0}).then(function(e){o.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:e.pts,pts_count:e.pts_count}})}),i.readPromise=u.then(function(){a&&(a.unread_count=0,t.$broadcast("dialog_unread",{peerID:e,count:0}),t.$broadcast("messages_read"),i&&i.history.length&&(a.read_inbox_max_id=i.history[0]))})["finally"](function(){delete i.readPromise}),i&&i.history.length){var r,s,p,e,a;for(p=0;p0){var c=e.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";e.pFlags.unread=o>s[c]}else t.isNew&&(e.pFlags.unread=!0);e.reply_to_msg_id&&(e.reply_to_mid=f.getFullMessageID(e.reply_to_msg_id,a)),e.date-=y.serverTimeOffset;var p=e.fwd_from;p&&(e.fwdFromID=p.channel_id?-p.channel_id:p.from_id,p.date-=y.serverTimeOffset),e.peerID=n,e.fromID=e.pFlags.post?n:e.from_id,e.signID=e.pFlags.post&&e.from_id||p&&p.channel_id&&p.from_id,e.via_bot_id>0&&(e.viaBotID=e.via_bot_id);var m={user_id:e.fromID,date:e.date};if(e.media)switch(e.media._){case"messageMediaEmpty":delete e.media;break;case"messageMediaPhoto":d.savePhoto(e.media.photo,m);break;case"messageMediaDocument":u.saveDoc(e.media.document,m);break;case"messageMediaWebPage":h.saveWebPage(e.media.webpage,e.mid,m);break;case"messageMediaGame":g.saveGame(e.media.game,e.mid,m),e.media.handleMessage=!0;break;case"messageMediaInvoice":e.media={_:"messageMediaUnsupported"}}if(e.action){var _,v;switch(e.action._){case"messageActionChatEditPhoto":d.savePhoto(e.action.photo,m),r&&(e.action._="messageActionChannelEditPhoto");break;case"messageActionChatEditTitle":r&&(e.action._="messageActionChannelEditTitle");break;case"messageActionChatDeletePhoto":r&&(e.action._="messageActionChannelDeletePhoto");break;case"messageActionChatAddUser":1==e.action.users.length?(e.action.user_id=e.action.users[0],e.fromID==e.action.user_id&&(i?e.action._="messageActionChatJoined":e.action._="messageActionChatReturn")):e.action.users.length>1&&(e.action._="messageActionChatAddUsers");break;case"messageActionChatDeleteUser":e.fromID==e.action.user_id&&(e.action._="messageActionChatLeave");break;case"messageActionChannelMigrateFrom":_=-e.action.chat_id,v=-a;break;case"messageActionChatMigrateTo":_=-a,v=-e.action.channel_id;break;case"messageActionHistoryClear":e.deleted=!0,e.clear_history=!0,e.pFlags.out=!1,e.pFlags.unread=!1;break;case"messageActionPhoneCall":delete e.fromID,e.action.type=(e.pFlags.out?"out_":"in_")+("phoneCallDiscardReasonMissed"==e.action.reason._||"phoneCallDiscardReasonBusy"==e.action.reason._?"missed":"ok")}_&&v&&!rt[_]&&!ot[v]&&F(_,v)}if(e.message&&e.message.length){var w=b.parseEntities(e.message),k=e.entities||[];e.totalEntities=b.mergeEntities(w,k,!e.pending)}e.canBeEdited=z(e),t.isEdited||(xe[o]=e)}})}function ne(e,n,i){if(angular.isString(n)){i=i||{};var a=i.entities||[];if(i.viaBotID||(n=b.parseMarkdown(n,a)),n.length){var r,l=de(a),d=He--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),h=Re[e],g=0,v={},w=i.replyToMsgID,k=c.isChannel(e),M=k&&c.isMegagroup(e),S=!(!k||M);void 0===h&&(h=Re[e]={count:null,history:[],pending:[]});var A=s.getSelf().id;e!=A&&(g|=2,v.out=!0,k||s.isBot(e)||(g|=1,v.unread=!0)),w&&(g|=8),S?(A=0,v.post=!0):g|=256,r={_:"message",id:d,from_id:A,to_id:c.getOutputPeer(e),flags:g,pFlags:v,date:tsNow(!0)+y.serverTimeOffset,message:n,random_id:p,reply_to_msg_id:w,via_bot_id:i.viaBotID,reply_markup:i.reply_markup,entities:a,views:S&&1,pending:!0};var T=function(e){var n=Pe[d];e?(r.error=!0,n&&(n.error=!0)):(delete r.error,n&&delete n.error),t.$broadcast("messages_pending")};r.send=function(){T(!1);var t={};Fe[e]&&(t.afterMessageID=Fe[e].messageID);var a=0;w&&(a|=1),S&&(a|=16),i.clearDraft&&(a|=128);var s;i.viaBotID?s=_.invokeApi("messages.sendInlineBotResult",{flags:a,peer:c.getInputPeerByID(e),random_id:u,reply_to_msg_id:f.getMessageLocalID(w),query_id:i.queryID,id:i.resultID},t):(l.length&&(a|=8),s=_.invokeApi("messages.sendMessage",{flags:a,peer:c.getInputPeerByID(e),message:n,random_id:u,reply_to_msg_id:f.getMessageLocalID(w),entities:l},t)),s.then(function(e){"updateShortSentMessage"==e._?(r.flags=e.flags,r.date=e.date,r.id=e.id,r.media=e.media,r.entities=e.entities,e={_:"updates",users:[],chats:[],seq:0,updates:[{_:"updateMessageID",random_id:p,id:e.id},{_:k?"updateNewChannelMessage":"updateNewMessage",message:r,pts:e.pts,pts_count:e.pts_count}]}):e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),o.processUpdateMessage(e)},function(e){T(!0)})["finally"](function(){Fe[e]===t&&delete Fe[e]}),Fe[e]=t},te([r]),h.pending.unshift(d),t.$broadcast("history_append",{peerID:e,messageID:d,my:!0}),setZeroTimeout(r.send),i.clearDraft&&m.clearDraft(e),Ne[p]=[e,d]}}}function ie(n,i,a){a=a||{};var r,l,d=He--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),m=Re[n],h=0,g={},b=a.replyToMsgID,w=c.isChannel(n),k=w&&c.isMegagroup(n),M=!(!w||k);a.isMedia?["image/jpeg","image/png","image/bmp"].indexOf(i.type)>=0?(r="photo",l="photo."+i.type.split("/")[1]):"audio/"==i.type.substr(0,6)||["video/ogg"].indexOf(i.type)>=0?(r="audio",l="audio."+("ogg"==i.type.split("/")[1]?"ogg":"mp3")):"video/"==i.type.substr(0,6)?(r="video",l="video.mp4"):(r="document",l="document."+i.type.split("/")[1]):(r="document",l="document."+i.type.split("/")[1]),void 0===m&&(m=Re[n]={count:null,history:[],pending:[]});var S=s.getSelf().id;n!=S&&(h|=2,g.out=!0,w||s.isBot(n)||(h|=1,g.unread=!0)),b&&(h|=8),M?(S=0,g.post=!0):h|=256;var A,T={_:"messageMediaPending",type:r,file_name:i.name||l,size:i.size,progress:{percent:1,total:i.size}},C={_:"message",id:d,from_id:S,to_id:c.getOutputPeer(n),flags:h,pFlags:g,date:tsNow(!0)+y.serverTimeOffset,message:"",media:T,random_id:p,reply_to_msg_id:b,views:M&&1,pending:!0},E=function(e){var n=Pe[d];e?(C.error=!0,n&&(n.error=!0)):(delete C.error,n&&delete n.error),t.$broadcast("messages_pending")},$=!1;C.send=function(){var a=e.defer();Be.then(function(){$&&!C.error||($=!1,A=v.uploadFile(i)),A.then(function(e){e.name=l,$=!0;var t;switch(r){case"photo":t={_:"inputMediaUploadedPhoto",flags:0,file:e};break;case"document":default:t={_:"inputMediaUploadedDocument",file:e,mime_type:i.type,caption:"",attributes:[{_:"documentAttributeFilename",file_name:i.name}]}}var a=0;b&&(a|=1),M&&(a|=16),_.invokeApi("messages.sendMedia",{flags:a,peer:c.getInputPeerByID(n),media:t,random_id:u,reply_to_msg_id:f.getMessageLocalID(b)}).then(function(e){o.processUpdateMessage(e)},function(e){return"photo"!=r||400!=e.code||"PHOTO_INVALID_DIMENSIONS"!=e.type&&"PHOTO_SAVE_FILE_INVALID"!=e.type?void E(!0):(e.handled=!0,r="document",void C.send())})},function(e){E(!0)},function(e){T.progress.done=e.done,T.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update",{peerID:n})}),T.progress.cancel=function(){$||(a.resolve(),A.cancel(),le(p))},A["finally"](function(){a.resolve()})}),Be=a.promise},te([C]),m.pending.unshift(d),t.$broadcast("history_append",{peerID:n,messageID:d,my:!0}),setZeroTimeout(C.send),Ne[p]=[n,d]}function ae(e,n,i){i=i||{};var a=He--,r=[nextRandomInt(4294967295),nextRandomInt(4294967295)],l=bigint(r[0]).shiftLeft(32).add(bigint(r[1])).toString(),h=Re[e],g=i.replyToMsgID,v=c.isChannel(e),b=v&&c.isMegagroup(e),w=!(!v||b);void 0===h&&(h=Re[e]={count:null,history:[],pending:[]});var k,M=s.getSelf().id;switch(n._){case"inputMediaPhoto":k={_:"messageMediaPhoto",photo:d.getPhoto(n.id.id),caption:n.caption||""};break;case"inputMediaDocument":var S=u.getDoc(n.id.id);S.sticker&&S.stickerSetInput&&p.pushPopularSticker(S.id),k={_:"messageMediaDocument",document:S,caption:n.caption||""};break;case"inputMediaContact":k={_:"messageMediaContact",phone_number:n.phone_number,first_name:n.first_name,last_name:n.last_name,user_id:0};break;case"inputMediaGeoPoint":k={_:"messageMediaGeo",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]}};break;case"inputMediaVenue":k={_:"messageMediaVenue",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]},title:n.title,address:n.address,provider:n.provider,venue_id:n.venue_id};break;case"messageMediaPending":k=n}var A=0,T={};e!=M&&(A|=2,T.out=!0,s.isBot(e)||(A|=1,T.unread=!0)),g&&(A|=8),w?(M=0,T.post=!0):A|=256;var C={_:"message",id:a,from_id:M,to_id:c.getOutputPeer(e),flags:A,pFlags:T,date:tsNow(!0)+y.serverTimeOffset,message:"",media:k,random_id:l,reply_to_msg_id:g,via_bot_id:i.viaBotID,reply_markup:i.reply_markup,views:w&&1,pending:!0},E=function(e){var n=Pe[a];e?(C.error=!0,n&&(n.error=!0)):(delete C.error,n&&delete n.error),t.$broadcast("messages_pending")};C.send=function(){var t=0;g&&(t|=1),w&&(t|=16),i.clearDraft&&(t|=128);var a={};Fe[e]&&(a.afterMessageID=Fe[e].messageID);var s;s=i.viaBotID?_.invokeApi("messages.sendInlineBotResult",{flags:t,peer:c.getInputPeerByID(e),random_id:r,reply_to_msg_id:f.getMessageLocalID(g),query_id:i.queryID,id:i.resultID},a):_.invokeApi("messages.sendMedia",{flags:t,peer:c.getInputPeerByID(e),media:n,random_id:r,reply_to_msg_id:f.getMessageLocalID(g)},a),s.then(function(e){e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),o.processUpdateMessage(e)},function(e){E(!0)})["finally"](function(){Fe[e]===a&&delete Fe[e]}),Fe[e]=a},te([C]),h.pending.unshift(a),t.$broadcast("history_append",{peerID:e,messageID:a,my:!0}),setZeroTimeout(C.send),i.clearDraft&&m.clearDraft(e),Ne[l]=[e,a]}function re(t,n,i){n=n.sort(),i=i||{};var a=0,r=c.isChannel(t),s=r&&c.isMegagroup(t),l=!(!r||s);l&&(a|=16),i.withMyScore&&(a|=256);var d=f.splitMessageIDsByChannels(n),u=[];return angular.forEach(d.msgIDs,function(e,n){for(var i=e.length,r=[],s=0;s0&&i<=4)||e.pFlags&&e.pFlags.resize||(e.splitCount=i),e.wrapped=!0,angular.forEach(e.rows,function(e){angular.forEach(e.buttons,function(e){if(e.rText=b.wrapRichText(e.text,{noLinks:!0,noLinebreaks:!0}),"keyboardButtonUrl"==e._){var n=s.getUser(t),i=!(n&&n.pFlags&&n.pFlags.verified);e.pUrl=b.wrapUrl(e.url,i)}})}),e}function ve(e){var t=q(e),n=t.from_id&&s.getUser(t.from_id),i=n&&n.pFlags.bot&&n.username||!1,a=c.getPeerID(t.to_id),r=i||c.isBot(a)||c.isAnyGroup(a),o={noCommands:!r,fromBot:i,entities:t.totalEntities};if(t.pFlags.mentioned){var l=s.getSelf();l&&(o.highlightUsername=l.username)}return b.wrapRichText(t.message,o)}function ye(){if(Ge!==!1&&(clearTimeout(Ge),Ge=!1),We.length){var e=We.slice();We=[];var n=f.splitMessageIDsByChannels(e);angular.forEach(n.msgIDs,function(e,i){var a;a=i>0?_.invokeApi("channels.getMessages",{channel:l.getChannelInput(i),id:e}):_.invokeApi("messages.getMessages",{id:e}),a.then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages),t.$broadcast("messages_downloaded",n.mids[i])})})}}function be(){if(Xe!==!1&&(clearTimeout(Xe),Xe=!1),Ye.length){var e=Ye.slice();Ye=[];var t=f.splitMessageIDsByChannels(e);angular.forEach(t.msgIDs,function(e,n){_.invokeApi("messages.getMessagesViews",{peer:c.getInputPeerByID(-n),id:e,increment:!0}).then(function(e){if(n){for(var i=t.mids[n],a=[],r=0;r0?u=Math.min(t,d):t<0&&(c=Math.max(0,u+t)),n=c;nJe))&&(k.set({max_seen_msg:e}),void _.invokeApi("messages.receivedMessages",{max_id:e}))}function Se(e,n){n=n||{};var i,a,r=pe(e),o={},c=!1,d=w.getNotifySettings();if(e.fwdFromID&&n.fwd_count)c=Qe(n.fwd_count);else if(e.message)c=d.nopreview?C("conversation_message_sent"):b.wrapPlainText(e.message);else if(e.media){var u=!1;switch(e.media._){case"messageMediaPhoto":c=C("conversation_media_photo_raw"),u="🖼";break;case"messageMediaDocument":switch(e.media.document.type){case"gif":c=C("conversation_media_gif_raw"),u="🎬";break;case"sticker":c=C("conversation_media_sticker");var p=e.media.document.stickerEmojiRaw;void 0!==p&&(c=b.wrapPlainText(p)+" "+c);break;case"video":c=C("conversation_media_video_raw"),u="📹";break;case"round":c=C("conversation_media_round_raw"),u="📹";break;case"voice":case"audio":c=C("conversation_media_audio_raw");break;default:e.media.document.file_name?c=b.wrapPlainText("📎 "+e.media.document.file_name):(c=C("conversation_media_document_raw"),u="📎")}break;case"messageMediaGeo":case"messageMediaVenue":c=C("conversation_media_location_raw"),u="📍";break;case"messageMediaContact":c=C("conversation_media_contact_raw");break;case"messageMediaGame":c=b.wrapPlainText("🎮 "+e.media.game.title);break;case"messageMediaUnsupported":c=C("conversation_media_unsupported_raw");break;default:c=C("conversation_media_attachment_raw")}u!==!1&&e.media.caption&&(c=b.wrapPlainText(u+" "+e.media.caption))}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":c=C("conversation_group_created_raw");break;case"messageActionChatEditTitle":c=C("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":c=C("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":c=C("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":case"messageActionChatAddUsers":c=C("conversation_invited_user_message_raw");break;case"messageActionChatReturn":c=C("conversation_returned_to_group_raw");break;case"messageActionChatJoined":c=C("conversation_joined_group_raw");break;case"messageActionChatDeleteUser":c=C("conversation_kicked_user_message_raw");break;case"messageActionChatLeave":c=C("conversation_left_group_raw");break;case"messageActionChatJoinedByLink":c=C("conversation_joined_by_link_raw");break;case"messageActionChannelCreate":c=C("conversation_created_channel_raw");break;case"messageActionChannelEditTitle":c=C("conversation_changed_channel_name_raw");break;case"messageActionChannelEditPhoto":c=C("conversation_changed_channel_photo_raw");break;case"messageActionChannelDeletePhoto":c=C("conversation_removed_channel_photo_raw");break;case"messageActionPinMessage":c=C("conversation_pinned_message_raw");break;case"messageActionGameScore":c=et(e.action.score);break;case"messageActionPhoneCall":switch(e.action.type){case"out_missed":c=C("message_service_phonecall_canceled_raw");break;case"in_missed":c=C("message_service_phonecall_missed_raw");break;case"out_ok":c=C("message_service_phonecall_outgoing_raw");break;case"in_ok":c=C("message_service_phonecall_incoming_raw")}}if(r>0){var f=s.getUser(e.from_id),m=s.getUserPhoto(e.from_id);o.title=(f.first_name||"")+(f.first_name&&f.last_name?" ":"")+(f.last_name||""),o.title||(o.title=f.phone||C("conversation_unknown_user_raw")),a=m,i=s.getUserString(r)}else{if(o.title=l.getChat(-r).title||C("conversation_unknown_chat_raw"),e.from_id>0){var f=s.getUser(e.from_id);o.title=(f.first_name||f.last_name||C("conversation_unknown_user_raw"))+" @ "+o.title}a=l.getChatPhoto(-r),i=l.getChatString(-r)}o.title=b.wrapPlainText(o.title),o.onclick=function(){t.$broadcast("history_focus",{peerString:i,messageID:16&e.flags?e.mid:0})},o.message=c,o.key="msg"+e.mid,o.tag=i,o.silent=e.pFlags.silent||!1,a.location&&!a.location.empty?v.downloadSmallFile(a.location,a.size).then(function(t){e.pFlags.unread&&(o.image=t,w.notify(o))}):w.notify(o)}function Ae(){a.cancel(st),st=!1,t.$broadcast("history_multiappend",lt),lt={}}function Te(){a.cancel(ct),ct=!1;var e=0;angular.forEach(dt,function(t,n){t.reload?($e(n),delete dt[n]):(R(t),c.isChannel(n)||(e=Math.max(e,t.top_message||0)))}),e!==!1&&Me(e),t.$broadcast("dialogs_multiupdate",dt),dt={}}function Ce(){a.cancel(ut),ut=!1;var e=t.idle.isIDLE&&T.isOtherDeviceActive()?3e4:1e3;angular.forEach(pt,function(t){t.isMutedPromise.then(function(n){var i=t.top_message;!n&&i.pFlags.unread&&setTimeout(function(){i.pFlags.unread&&Se(i,{fwd_count:t.fwd_count})},e)})}),pt={}}function Ee(e){switch(e._){case"updateMessageID":var n=e.random_id,i=Ne[n];if(i){var r=i[0],o=c.isChannel(r)?-r:0;Le[f.getFullMessageID(e.id,o)]=n}break;case"updateNewMessage":case"updateNewChannelMessage":var d=e.message,r=pe(d),u=Re[r],p=$(r);if(!p.length){dt[r]={reload:!0},ct||(ct=a(Te,0)),void 0===ft[r]&&(ft[r]=[]),ft[r].push(e);break}if("updateNewChannelMessage"==e._){var m=l.getChat(-r);if(m.pFlags&&(m.pFlags.left||m.pFlags.kicked))break}te([d],{isNew:!0}),void 0===u&&(u=Re[r]={count:null,history:[],pending:[]});var h=d.mid>0?u.history:u.pending;if(h.indexOf(d.mid)!=-1)return!1;var g=h[0];h.unshift(d.mid),d.mid>0&&d.mid0&&null!==u.count&&u.count++,j(u,d)&&t.$broadcast("history_reply_markup",{peerID:r}),!d.pFlags.out&&d.from_id&&s.forceUserOnline(d.from_id);var v,n=Le[d.mid];n&&((v=ce(n,d))&&t.$broadcast("history_update",{peerID:r}),delete Le[d.mid]),v||(void 0===lt[r]&&(lt[r]=[]),lt[r].push(d.mid),st||(st=a(Ae,0)));var b=!d.pFlags.out&&d.pFlags.unread,k=p[0];if(k.top_message=d.mid,b&&k.unread_count++,k.pFlags.pinned&&k.index||(k.index=D(d.date)),dt[r]=k,ct||(ct=a(Te,0)),b&&(t.selectedPeerID!=r||t.idle.isIDLE)){var M=16&d.flags?d.from_id:r,S=pt[M];void 0===S&&(S=pt[M]={isMutedPromise:w.getPeerMuted(M),fwd_count:0,from_id:0}),S.from_id!=d.from_id&&(S.from_id=d.from_id,S.fwd_count=0),d.fwdFromID&&S.fwd_count++,S.top_message=d,ut||(ut=a(Ce,1e3))}break;case"updateDialogPinned":var r=c.getPeerID(e.peer),p=$(r);if(!p.length||!e.pFlags.pinned){dt[r]={reload:!0},ct||(ct=a(Te,0));break}var k=p[0];k.index=D(P()),k.pFlags.pinned=!0;break;case"updatePinnedDialogs":var T={};if(!e.order){_.invokeApi("messages.getPinnedDialogs",{}).then(function(e){e.dialogs.reverse(),Ie(e),angular.forEach(e.dialogs,function(e){T[e.peerID]=!0}),angular.forEach(Oe.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!T[t]&&(dt[t]={reload:!0},ct||(ct=a(Te,0)))})});break}e.order.reverse(),angular.forEach(e.order,function(e){var t=c.getPeerID(e);T[t]=!0;var n=$(t);if(!n.length)return dt[t]={reload:!0},void(ct||(ct=a(Te,0)));var i=n[0];i.index=D(P()),i.pFlags.pinned=!0,dt[t]=i,ct||(ct=a(Te,0))}),angular.forEach(Oe.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!T[t]&&(dt[t]={reload:!0},ct||(ct=a(Te,0)))});break;case"updateEditMessage":case"updateEditChannelMessage":var d=e.message,r=pe(d),o="peerChannel"==d.to_id._?-r:0,C=f.getFullMessageID(d.id,o);if(void 0===xe[C])break;te([d],{isEdited:!0}),safeReplaceObject(xe[C],d);var E=Pe[C];if(void 0!==E){delete Pe[C];var I=ge(C);safeReplaceObject(E,I),Pe[C]=E}var p=$(r)[0],x=p&&p.top_message==C;if(d.clear_history)x?t.$broadcast("dialog_flush",{peerID:r}):t.$broadcast("history_delete",{peerID:r,msgs:[C]});else if(t.$broadcast("message_edit",{peerID:r,id:d.id,mid:C}),x){var R={};R[r]=p,t.$broadcast("dialogs_multiupdate",R)}break;case"updateReadHistoryInbox":case"updateReadHistoryOutbox":case"updateReadChannelInbox":case"updateReadChannelOutbox":var O,d,N,L="updateReadHistoryOutbox"==e._||"updateReadChannelOutbox"==e._,o=e.channel_id,F=f.getFullMessageID(e.max_id,o),r=o?-o:c.getPeerID(e.peer),p=$(r),h=(Re[r]||{}).history||[],U=!1,B=h.length,H=!1;for(r>0&&L&&s.forceUserOnline(r),N=0;NF)&&(d=xe[O],d.pFlags.out==L)){if(!d.pFlags.unread)break;d&&d.pFlags.unread&&(d.pFlags.unread=!1,Pe[O]&&(Pe[O].pFlags.unread=!1,H||(H=!0)),De[O]&&(De[O].pFlags.unread=!1),d.pFlags.out||(p[0]&&(U=--p[0].unread_count),w.cancel("msg"+O)))}if(p[0]){!L&&U&&p[0].top_message<=F&&(U=p[0].unread_count=0);var V=L?"read_outbox_max_id":"read_inbox_max_id";p[0][V]=F}U!==!1&&t.$broadcast("dialog_unread",{peerID:r,count:U}),H&&t.$broadcast("messages_read");break;case"updateReadMessagesContents":var N,O,d,z,W=e.messages,G=W.length;for(N=0;N0&&(i.count-=e.count,i.count<0&&(i.count=0));for(var o=0;o0,ee="channel"==J._&&(J.username||!J.pFlags.left&&!J.pFlags.kicked)&&!0||!1,ne=void 0!==Re[r]; -ee!=ne&&(delete Re[r],t.$broadcast("history_forbidden",r)),Q!=Z&&(Z?$e(-o):p[0]&&(Oe.dialogs.splice(p[1],1),t.$broadcast("dialog_drop",{peerID:r})));break;case"updateChannelReload":var o=e.channel_id,r=-o,p=$(r);p[0]&&Oe.dialogs.splice(p[1],1),delete Re[r],$e(-o).then(function(){t.$broadcast("history_reload",r)});break;case"updateChannelMessageViews":var ie=e.views,C=f.getFullMessageID(e.id,e.channel_id),d=q(C);d&&d.views&&d.viewsq(r).date)&&(e.top_message=r=o),r){var s=$(a).length>0;I(e),s?(he(r),t.$broadcast("dialog_top",e)):(n[a]=e,i=!0)}else{var l=$(a);l.length&&(Oe.dialogs.splice(l[1],1),t.$broadcast("dialog_drop",{peerID:a}))}void 0!==ft[a]&&(angular.forEach(ft[a],function(e){Ee(e)}),delete ft[a])}),i&&t.$broadcast("dialogs_multiupdate",n)}var xe={},Pe={},De={},Re={},Oe={count:null,dialogs:[]},Ne={},Le={},Fe={},Ue={},Be=e.when(),He=-1,je=SearchIndexManager.createIndex(),Ve={query:!1},qe={},ze=[],We=[],Ge=!1,Ke={},Ye=[],Xe=!1,Je=!1;k.get("max_seen_msg").then(function(e){e&&!f.getMessageIDInfo(e)[1]&&(Je=e)});var Ze=i("dateOrTime"),Qe=C.pluralize("conversation_forwarded_X_messages"),et=C.pluralize("conversation_scored_X");w.start();var tt=!1,nt=0,it=0,at=0,rt={},ot={},st=!1,lt={},ct=!1,dt={},ut=!1,pt={},ft={};return t.$on("apiUpdate",function(e,t){Ee(t)}),t.$on("webpage_updated",function(e,n){angular.forEach(n.msgs,function(e){var i=Pe[e];i&&(i.media={_:"messageMediaWebPage",webpage:h.wrapForHistory(n.id)},t.$broadcast("message_edit",{peerID:pe(i),id:i.id,mid:e,justMedia:!0}))})}),t.$on("draft_updated",function(e,n){var i=n.peerID,a=n.draft,r=$(i)[0];if(r){var o;if(a&&a.date)o=a.date;else{var s=c.isChannel(i)?-i:0,o=q(r.top_message).date;if(s){var d=l.getChat(s);(!o||d.date&&d.date>o)&&(o=d.date)}}r.pFlags.pinned||(r.index=D(o)),R(r),t.$broadcast("dialog_draft",{peerID:i,draft:a,index:r.index})}}),{getConversations:E,getHistory:B,getSearch:V,getMessage:q,getReplyKeyboard:H,readHistory:J,readMessages:Z,flushHistory:ee,deleteMessages:Y,sendText:ne,sendFile:ie,sendOther:ae,forwardMessages:re,startBot:oe,shareGame:se,editMessage:ue,convertMigratedPeer:U,getMessagePeer:pe,getMessageThumb:ke,getMessageShareLink:X,canMessageBeEdited:z,canEditMessage:W,getMessageEditData:G,canRevokeMessage:K,clearDialogCache:he,wrapForDialog:fe,wrapForHistory:ge,wrapReplyMarkup:_e,wrapSingleMessage:me,wrapMessageText:ve,regroupWrappedHistory:we}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var i=a[t];return i||(i=++o*s,r[i]=t,a[t]=i),i+e}function t(e){if(e\n\t\n\t \n\t\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t[ \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t]\n\t\t\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t
\n \n \n\t
\n\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t
\n\t \t
\n\t \t
\n\t
\n\t
\n\t
\n'),e.put("partials/desktop/changelog_modal.html",'
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
Telegram Web
\n
Version {{currentVersion}}
\n
\n
\n
\n\n
\n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n
\n
\n\n
\n\n\n \n\n
\n\n
'),e.put("partials/desktop/channel_edit_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/channel_modal.html",'
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n \n\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n
\n
\n
\n
\n\n \n\n
\n \n\n \n \n \n \n\n
\n\n \n\n
\n\n
\n\n
\n\n
\n \n\n
\n\n
\n\n \n \n\n \n\n
\n \n
\n
\n
\n\n
\n\n
\n\n
\n
\n\n\n
\n'),e.put("partials/desktop/chat_create_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_edit_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_invite_link_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_modal.html",'
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n\n
\n\n \n\n \n\n
\n \n\n \n \n \n \n\n
\n\n \n\n \n\n
\n\n
\n\n
\n
\n

\n

\n
    \n
  • \n
  • \n
  • \n
  • \n
\n
\n
\n
\n\n
\n \n\n
\n\n
\n\n \n \n\n \n\n
\n \n
\n
\n
\n\n
\n\n
\n\n
\n
\n\n\n
\n'),e.put("partials/desktop/composer_dropdown.html",'
\n\n \n\n \n\n
    \n\n
    \n\n
    '),e.put("partials/desktop/confirm_modal.html",'
    \n\n
    \n\n
    \n \n \n \n \n \n \n \n\n \n \n \n \n
    \n \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n

    \n \n \n \n

    \n
    \n \n \n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n\n \n \n \n \n
    \n\n
    \n\n \n\n
    \n'), +ee!=ne&&(delete Re[r],t.$broadcast("history_forbidden",r)),Q!=Z&&(Z?$e(-o):p[0]&&(Oe.dialogs.splice(p[1],1),t.$broadcast("dialog_drop",{peerID:r})));break;case"updateChannelReload":var o=e.channel_id,r=-o,p=$(r);p[0]&&Oe.dialogs.splice(p[1],1),delete Re[r],$e(-o).then(function(){t.$broadcast("history_reload",r)});break;case"updateChannelMessageViews":var ie=e.views,C=f.getFullMessageID(e.id,e.channel_id),d=q(C);d&&d.views&&d.viewsq(r).date)&&(e.top_message=r=o),r){var s=$(a).length>0;I(e),s?(he(r),t.$broadcast("dialog_top",e)):(n[a]=e,i=!0)}else{var l=$(a);l.length&&(Oe.dialogs.splice(l[1],1),t.$broadcast("dialog_drop",{peerID:a}))}void 0!==ft[a]&&(angular.forEach(ft[a],function(e){Ee(e)}),delete ft[a])}),i&&t.$broadcast("dialogs_multiupdate",n)}var xe={},Pe={},De={},Re={},Oe={count:null,dialogs:[]},Ne={},Le={},Fe={},Ue={},Be=e.when(),He=-1,je=SearchIndexManager.createIndex(),Ve={query:!1},qe={},ze=[],We=[],Ge=!1,Ke={},Ye=[],Xe=!1,Je=!1;k.get("max_seen_msg").then(function(e){e&&!f.getMessageIDInfo(e)[1]&&(Je=e)});var Ze=i("dateOrTime"),Qe=C.pluralize("conversation_forwarded_X_messages"),et=C.pluralize("conversation_scored_X");w.start();var tt=!1,nt=0,it=0,at=0,rt={},ot={},st=!1,lt={},ct=!1,dt={},ut=!1,pt={},ft={};return t.$on("apiUpdate",function(e,t){Ee(t)}),t.$on("webpage_updated",function(e,n){angular.forEach(n.msgs,function(e){var i=Pe[e];i&&(i.media={_:"messageMediaWebPage",webpage:h.wrapForHistory(n.id)},t.$broadcast("message_edit",{peerID:pe(i),id:i.id,mid:e,justMedia:!0}))})}),t.$on("draft_updated",function(e,n){var i=n.peerID,a=n.draft,r=$(i)[0];if(r){var o;if(a&&a.date)o=a.date;else{var s=c.isChannel(i)?-i:0,o=q(r.top_message).date;if(s){var d=l.getChat(s);(!o||d.date&&d.date>o)&&(o=d.date)}}r.pFlags.pinned||(r.index=D(o)),R(r),t.$broadcast("dialog_draft",{peerID:i,draft:a,index:r.index})}}),{getConversations:E,getHistory:B,getSearch:V,getMessage:q,getReplyKeyboard:H,readHistory:J,readMessages:Z,flushHistory:ee,deleteMessages:Y,sendText:ne,sendFile:ie,sendOther:ae,forwardMessages:re,startBot:oe,shareGame:se,editMessage:ue,convertMigratedPeer:U,getMessagePeer:pe,getMessageThumb:ke,getMessageShareLink:X,canMessageBeEdited:z,canEditMessage:W,getMessageEditData:G,canRevokeMessage:K,clearDialogCache:he,wrapForDialog:fe,wrapForHistory:ge,wrapReplyMarkup:_e,wrapSingleMessage:me,wrapMessageText:ve,regroupWrappedHistory:we}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var i=a[t];return i||(i=++o*s,r[i]=t,a[t]=i),i+e}function t(e){if(e\n\t\n\t \n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t\t[ \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t]\n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\t
    \n \n \n\t
    \n\t
    \n\t\t
    \n\t\t \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t
    \n\t \t
    \n\t \t
    \n\t
    \n\t
    \n\t
    \n'),e.put("partials/desktop/changelog_modal.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    Telegram Web
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n\n
    \n\n\n \n\n
    \n\n
    '),e.put("partials/desktop/channel_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/channel_modal.html",'
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n\n \n\n
    \n \n\n \n \n \n \n\n
    \n\n \n\n
    \n\n
    \n\n
    \n\n
    \n \n\n
    \n\n
    \n\n \n \n\n \n\n
    \n \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n\n
    \n'),e.put("partials/desktop/chat_create_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/chat_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/chat_invite_link_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/chat_modal.html",'
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n\n \n\n \n\n
    \n \n\n \n \n \n \n\n
    \n\n \n\n \n\n
    \n\n
    \n\n
    \n
    \n

    \n

    \n
      \n
    • \n
    • \n
    • \n
    • \n
    \n
    \n
    \n
    \n\n
    \n \n\n
    \n\n
    \n\n \n \n\n \n\n
    \n \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n\n
    \n'),e.put("partials/desktop/composer_dropdown.html",'
    \n\n \n\n \n\n
      \n\n
      \n\n
      '),e.put("partials/desktop/confirm_modal.html",'
      \n\n
      \n\n
      \n \n \n \n \n \n \n \n\n \n \n \n \n
      \n \n
      \n
      \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n

      \n \n \n \n

      \n
      \n \n \n
      \n \n
      \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n\n\n\n \n \n \n \n
      \n\n
      \n\n \n\n
      \n'), e.put("partials/desktop/contacts_modal.html",'
      \n\n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n \n \n \n \n \n
      \n \n
      \n
      \n\n
      \n\n \n\n
      \n\n
      \n
      \n\n
      \n {0}\n
      \n\n \n\n
      \n
      \n\n
      \n\n
      \n\n \n\n
      \n'),e.put("partials/desktop/country_select_modal.html",'
      \n\n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n\n
      \n\n \n\n
      \n\n
      \n
      \n\n \n\n
      \n
      \n\n
      \n\n
      \n\n
      \n'),e.put("partials/desktop/dialog.html",'\n\n
      \n
      \n \n \n \n
      \n\n
      \n\n
      \n\n
      \n \n
      \n\n
      \n\n
      \n \n \n \n
      \n\n
      \n \n \n \n \n
      \n\n
      \n  \n
      \n\n
      \n \n \n \n :\n \n \n \n \n :\n \n \n \n\n \n
      \n
      \n\n
      \n\n
      \n'),e.put("partials/desktop/document_modal.html",'\n\n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n\n
      \n \n
      \n \n
      \n
      \n \n \n
      \n
      \n\n
      \n\n
      \n
      \n\n'),e.put("partials/desktop/edit_contact_modal.html",'
      \n\n
      \n\n \n\n
      \n\n \n\n
      '),e.put("partials/desktop/embed_modal.html",'\n\n
      \n
      \n
      \n \n \n \n \n \n \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n\n
      \n
      \n
      \n\n'),e.put("partials/desktop/emoji_btn_tooltip.html",'
      \n\n
      \n
      \n\n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n\n
      \n
      \n\n \n \n \n\n
      '),e.put("partials/desktop/error_modal.html",'
      \n\n
      \n\n

      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

      \n

      \n \n \n \n

      \n\n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {0}\n \n\n \n \n \n \n \n \n \n {0}\n \n \n \n \n \n \n \n {0}\n \n \n\n \n\n \n
      \n
      \n
      \n
      \n
      \n\n\n\n
      \n \n \n {0}\n \n \n \n \n \n
      \n\n
      \n\n
      \n \n
      \n \n
      \n
      \n\n
      \n\n
      \n\n \n\n
      \n'),e.put("partials/desktop/footer.html",''),e.put("partials/desktop/forwarded_messages.html",'
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n \n \n \n \n
      \n
      \n
      '),e.put("partials/desktop/full_document.html",'
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n
      '),e.put("partials/desktop/full_gif.html",'\n\n
      \n\n
      \n
      \n \n \n \n \n
      \n
      \n
      [GIF]
      \n
      \n\n
      \n \n \n
      \n \n\n
      \n\n
      '),e.put("partials/desktop/full_photo.html",'
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      '),e.put("partials/desktop/full_round.html",'\n\n
      \n\n
      \n
      \n \n \n \n \n
      \n
      \n \n
      \n
      \n\n
      \n \n \n
      \n \n\n
      \n\n
      '),e.put("partials/desktop/full_video.html",'
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      '),e.put("partials/desktop/game_modal.html",'\n\n
      \n
      \n
      \n \n \n \n
      \n\n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n
      \n
      \n
      \n\n'),e.put("partials/desktop/head.html",'
      \n
      \n\n
      \n \n
      \n\n
      \n
      \n \n \n \n
      \n\n
      \n\n \n\n \n \n \n\n \n \n \n \n \n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n\n \n
      \n \n \n \n \n \n
      \n
      \n\n
      \n\n
      \n
      \n
      \n
      '), e.put("partials/desktop/im.html",'
      \n\n
      \n\n
      \n\n
      \n
      \n \n
      \n\n
      \n
      \n
      \n\n
      \n

      \n

      \n \n \n
      \n\n \n\n
      \n
      \n \n
      \n\n
      \n
      \n \n
      \n\n
      \n
      \n \n
      \n\n
      \n
      \n
      \n
      \n\n
      \n\n
      \n
      \n

      \n

      \n \n
      \n
      \n
      \n\n
      \n
      \n
      \n\n
      \n
      \n\n
      \n\n
      \n\n
      \n
      \n\n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n\n
      \n\n
      \n
      \n
      \n
      \n \n \n \n \n \n \n {{historyState.typing.length - 2}}\n \n
      \n
      \n\n
      \n\n
      \n\n
      \n\n
      \n\n
      \n
      \n\n
      \n \n
      \n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n \n \n \n \n \n \n
      \n
      \n\n
      \n\n
      \n\n
      \n\n \n \n \n \n\n
      \n\n
      \n\n
      \n\n
      \n\n
      \n\n
      \n
      \n\n
      \n\n
      \n\n
      \n\n\n\n\n'),e.put("partials/desktop/import_contact_modal.html",'
      \n\n
      \n\n \n\n
      \n\n \n\n
      '),e.put("partials/desktop/inactive.html",'
      \n
      \n
      \n
      \n \n

      \n
      \n
      \n \n
      \n
      \n
      \n
      '),e.put("partials/desktop/inline_results.html",'\n\n'),e.put("partials/desktop/lang_footer.html",''),e.put("partials/desktop/login.html",'\n\n'),e.put("partials/desktop/media_modal_layout.html",''),e.put("partials/desktop/megagroup_edit_modal.html",'
      \n\n
      \n\n \n\n
      \n\n \n\n
      '), e.put("partials/desktop/message.html",'
      \n\n
      \n\n
      \n
      \n
      \n
      \n
      \n
      \n \n \n
      \n\n \n \n \n\n
      \n\n
      \n \n\n \n \n \n \n\n \n\n
      \n
      \n
      \n \n
      \n
      \n \n \n \n \n
      \n\n
      \n\n \n []  :\n \n\n\n \n\n
      \n \n \n
      \n   [\n \n \n \n
      \n
      \n\n
      \n
      \n
      \n
      \n
      \n
      \n\n\n
      \n\n
      \n
      \n\n
      \n\n'),e.put("partials/desktop/message_attach_contact.html",'
      \n \n
      \n \n \n
      \n
      \n
      '),e.put("partials/desktop/message_attach_document.html",'
      \n\n
      \n\n
      \n\n
      \n\n
      \n
      \n
      \n\n
      \n
      \n
      \n\n
      \n \n \n \n \n \n\n
      \n
      \n [ ]\n \n \n
      \n
      \n \n \n \n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n\n \n \n \n \n
      \n \n
      \n
      \n\n
      \n
      \n []\n \n \n
      \n
      \n \n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n
      \n
      \n'),e.put("partials/desktop/message_attach_game.html",'
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n'),e.put("partials/desktop/message_attach_geo.html",'\n \n'),e.put("partials/desktop/message_attach_pending.html",'
      \n
      \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n'),e.put("partials/desktop/message_attach_photo.html",'\n \n\n
      '),e.put("partials/desktop/message_attach_venue.html",'
      \n\n \n \n \n\n
      \n
      \n \n
      \n
      \n
      \n\n
      \n'),e.put("partials/desktop/message_attach_webpage.html",'
      \n
      \n
      \n \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n \n \n \n \n
      \n\n
      \n
      \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n\n
      \n \n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n'),e.put("partials/desktop/message_media.html",'
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      '),e.put("partials/desktop/message_service.html",'\n \n \n \n «»\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n «»\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n\n \n\n \n \n \n\n'),e.put("partials/desktop/password_recovery_modal.html",'
      \n\n
      \n\n \n\n
      \n\n \n\n
      '),e.put("partials/desktop/password_update_modal.html",'
      \n\n
      \n\n \n\n
      \n\n \n\n
      '),e.put("partials/desktop/peer_select.html",'
      \n\n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n\n
      \n\n
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n\n
      \n\n \n\n \n\n
      \n'), diff --git a/js/locales/de-de.json b/js/locales/de-de.json index 565cf36e..c37e6639 100644 --- a/js/locales/de-de.json +++ b/js/locales/de-de.json @@ -22,6 +22,7 @@ "group_modal_menu_delete_group": "Löschen und verlassen", "group_modal_menu_clear_history": "Verlauf löschen", "group_modal_delete_group": "Gruppe löschen", + "group_modal_join": "Gruppe beitreten", "group_modal_settings": "Einstellungen", "group_modal_notifications": "Benachrichtigungen", "group_modal_menu_share_link": "Per Link zur Gruppe einladen", @@ -38,6 +39,7 @@ "channel_modal_description": "Beschreibung", "channel_modal_share_link": "Link teilen", "channel_modal_share_loading": "Lade{dots}", + "channel_modal_menu_edit": "Kanal bearbeiten", "channel_modal_join": "Kanal beitreten", "channel_modal_add_member": "Mitglied hinzufügen", "channel_modal_leave_channel": "Kanal verlassen", @@ -169,6 +171,8 @@ "changelog_modal_header_recent_updates_md": "Aktualisierungen bei **Telegram Web**", "changelog_modal_header_new_updates_md": "**Telegram Web** wurde aktualisiert!", "changelog_modal_title_current_version": "aktuelle Version", + "changelog_modal_full_description_md": "Offizielle Messaging App basierend auf Telegram API für Geschwindigkeit und Sicherheit.\n\nDiese Software steht unter der GNU GPL Version 3.", + "changelog_modal_changelog_link": "Changelog", "group_create_contacts_modal_title": "Neue Gruppe", "group_create_modal_title": "Gruppe erstellen", "group_create_name": "Gruppenname", @@ -280,6 +284,7 @@ "conversation_draft": "Entwurf:", "conversation_media_photo": "Bild", "conversation_media_video": "Video", + "conversation_media_round": "Videonachricht", "conversation_media_document": "Datei", "conversation_media_sticker": "Sticker", "conversation_media_gif": "GIF", @@ -287,6 +292,7 @@ "conversation_media_location": "Standort", "conversation_media_contact": "Kontakt", "conversation_media_attachment": "Anhang", + "conversation_media_unsupported": "Nicht unterstützte Datei", "conversation_search_peer": "Diesen Chat durchsuchen", "conversation_group_created": "hat die Gruppe erstellt", "conversation_group_renamed": "hat den Gruppennamen geändert", @@ -338,6 +344,7 @@ "message_service_changed_channel_photo": "Bild geändert", "message_service_removed_channel_photo": "Bild gelöscht", "message_service_scored_X": "{'one': 'erzielte {} Punkte', 'other': 'erzielten {} Punkte'}", + "message_service_payment_sent": "Zahlung gesendet", "message_action_reply": "Antworten", "message_action_edit": "Bearbeiten", "message_action_delete": "Löschen", @@ -377,6 +384,7 @@ "error_modal_media_not_supported_description": "Dein Browser kann diese Mediendatei nicht wiedergeben. Lade die Datei herunter und versuche sie mit einem externen Player zu öffnen.", "error_modal_username_not_found_description": "Es gibt leider kein Telegram Konto mit dem Benutzernamen.", "error_modal_phonecalls_not_supported_description_md": "Leider werden Anrufe in der Web App noch nicht unterstützt.\n\nDu kannst {user} über unsere mobilen Apps oder Desktop Clients anrufen.\n{download-link: Download »}", + "error_modal_app_signup_forbidden_md": "Du hast noch kein Telegram Konto, bitte **registriere** dich zuerst über {signup-link: Android / iPhone}.", "error_modal_bad_request_description": "Ein Parameter fehlt oder ist ungültig.", "error_modal_unauthorized_description": "Diese Aktion benötigt autorisierten Zugriff. Bitte {login-link: melde dich an}.", "error_modal_forbidden_description": "Diese Aktion ist für dich nicht erlaubt.", @@ -408,6 +416,7 @@ "head_media_video": "Videos", "head_media_documents": "Dateien", "head_media_audio": "Sprachnachrichten", + "head_media_round": "Videonachrichten", "head_media_search": "Suchen", "head_about": "Info", "head_clear_all": "Verlauf löschen", @@ -476,6 +485,9 @@ "im_submit_message": "Senden", "im_submit_edit_message": "Speichern", "im_edit_message_title": "Nachricht bearbeiten", + "im_voice_recording_label": "Zum Abbrechen rausbewegen", + "im_voice_recording_cancel_label": "Loslassen, um abzubrechen", + "im_voice_processing_label": "Verarbeite{dots}", "login_sign_in": "Anmelden", "login_enter_number_description": "Land auswählen und Nummer eintragen", "login_incorrect_number": "Falsche Telefonnummer", diff --git a/js/locales/en-us.json b/js/locales/en-us.json index d4490696..fc43a995 100644 --- a/js/locales/en-us.json +++ b/js/locales/en-us.json @@ -191,6 +191,7 @@ "changelog_modal_title_current_version": "current version", "changelog_modal_full_description_md": "Official free messaging app based on Telegram API for speed and security.\n\nThis software is licensed under GNU GPL version 3.", "changelog_modal_changelog_link": "Changelog", + "changelog_app_version": "Version {version}", "group_create_contacts_modal_title": "New group", "group_create_modal_title": "Create group", diff --git a/js/locales/es-es.json b/js/locales/es-es.json index 5f4c0f33..7f789aed 100644 --- a/js/locales/es-es.json +++ b/js/locales/es-es.json @@ -22,6 +22,7 @@ "group_modal_menu_delete_group": "Eliminar y salir", "group_modal_menu_clear_history": "Eliminar historial", "group_modal_delete_group": "Eliminar grupo", + "group_modal_join": "Unirme al grupo", "group_modal_settings": "Ajustes", "group_modal_notifications": "Notificaciones", "group_modal_menu_share_link": "Invitar al grupo con un enlace", @@ -38,6 +39,7 @@ "channel_modal_description": "Descripción", "channel_modal_share_link": "Compartir enlace", "channel_modal_share_loading": "Cargando{dots}", + "channel_modal_menu_edit": "Editar canal", "channel_modal_join": "Unirme al canal", "channel_modal_add_member": "Invitar miembros", "channel_modal_leave_channel": "Salir del canal", @@ -169,6 +171,8 @@ "changelog_modal_header_recent_updates_md": "Últimas actualizaciones en **Telegram Web**", "changelog_modal_header_new_updates_md": "¡**Telegram Web** se ha actualizado!", "changelog_modal_title_current_version": "versión actual", + "changelog_modal_full_description_md": "App oficial de mensajería gratuita basada en la API de Telegram para la velocidad y seguridad.\n\nEste software está bajo licencia GNU GPL versión 3.", + "changelog_modal_changelog_link": "Novedades", "group_create_contacts_modal_title": "Nuevo grupo", "group_create_modal_title": "Crear grupo", "group_create_name": "Nombre del grupo", @@ -280,6 +284,7 @@ "conversation_draft": "Borrador:", "conversation_media_photo": "Foto", "conversation_media_video": "Vídeo", + "conversation_media_round": "Videomensaje", "conversation_media_document": "Archivo", "conversation_media_sticker": "Sticker", "conversation_media_gif": "GIF", @@ -287,6 +292,7 @@ "conversation_media_location": "Ubicación", "conversation_media_contact": "Contacto", "conversation_media_attachment": "Archivo adjunto", + "conversation_media_unsupported": "Adjunto no soportado", "conversation_search_peer": "Buscar en el chat", "conversation_group_created": "creó el grupo", "conversation_group_renamed": "cambió el nombre del grupo", @@ -338,6 +344,7 @@ "message_service_changed_channel_photo": "Foto del canal actualizada", "message_service_removed_channel_photo": "Foto del canal eliminada", "message_service_scored_X": "{'one': 'consiguió {} punto', 'other': 'consiguió {} puntos'}", + "message_service_payment_sent": "Pago enviado", "message_action_reply": "Responder", "message_action_edit": "Editar", "message_action_delete": "Eliminar", @@ -377,6 +384,7 @@ "error_modal_media_not_supported_description": "Tu navegador no puede reproducir este archivo multimedia. Prueba descargándolo y abriéndolo en un reproductor independiente.", "error_modal_username_not_found_description": "No hay una cuenta de Telegram con el alias que entregaste.", "error_modal_phonecalls_not_supported_description_md": "Las llamadas no están soportadas en la versión Web, por el momento.\n\nPuedes llamar a {user} con una app móvil o de escritorio.\n{download-link: Download »}", + "error_modal_app_signup_forbidden_md": "Aún no tienes una cuenta de Telegram. Por favor, **regístrate** con {signup-link: Android / iPhone} primero.", "error_modal_bad_request_description": "Falta uno de los parámetros o es inválido.", "error_modal_unauthorized_description": "Esta acción requiere acceso autorizado. Por favor, {login-link: inicia sesión}.", "error_modal_forbidden_description": "No estás autorizado para esta acción.", @@ -408,6 +416,7 @@ "head_media_video": "Vídeos", "head_media_documents": "Archivos", "head_media_audio": "Mensajes de voz", + "head_media_round": "Videomensajes", "head_media_search": "Buscar", "head_about": "Acerca de", "head_clear_all": "Eliminar historial", @@ -476,6 +485,9 @@ "im_submit_message": "Enviar", "im_submit_edit_message": "Guardar", "im_edit_message_title": "Editar mensaje", + "im_voice_recording_label": "Suelta fuera de aquí para cancelar", + "im_voice_recording_cancel_label": "Suelta para cancelar la grabación", + "im_voice_processing_label": "Procesando{dots}", "login_sign_in": "Registrarse", "login_enter_number_description": "Por favor, escoge tu país y pon tu número de teléfono completo.", "login_incorrect_number": "Número de teléfono incorrecto", diff --git a/js/locales/it-it.json b/js/locales/it-it.json index 7dd7ca75..05f8f5de 100644 --- a/js/locales/it-it.json +++ b/js/locales/it-it.json @@ -22,6 +22,7 @@ "group_modal_menu_delete_group": "Elimina ed esci", "group_modal_menu_clear_history": "Cancella cronologia", "group_modal_delete_group": "Elimina gruppo", + "group_modal_join": "Unisciti al gruppo", "group_modal_settings": "Impostazioni", "group_modal_notifications": "Notifiche", "group_modal_menu_share_link": "Invita nel gruppo tramite link", @@ -38,6 +39,7 @@ "channel_modal_description": "Descrizione", "channel_modal_share_link": "Condividi link", "channel_modal_share_loading": "Carico{dots}", + "channel_modal_menu_edit": "Modifica canale", "channel_modal_join": "Unisciti al canale", "channel_modal_add_member": "Invita membri", "channel_modal_leave_channel": "Lascia il canale", @@ -169,6 +171,8 @@ "changelog_modal_header_recent_updates_md": "Aggiornamenti recenti di **Telegram Web**", "changelog_modal_header_new_updates_md": "**Telegram Web** è stato aggiornato!", "changelog_modal_title_current_version": "versione corrente", + "changelog_modal_full_description_md": "App ufficiale basata sulle API di Telegram per velocità e sicurezza.\n\nQuesto software è sotto licenza GNU GPL versione 3.", + "changelog_modal_changelog_link": "Novità", "group_create_contacts_modal_title": "Nuovo gruppo", "group_create_modal_title": "Crea gruppo", "group_create_name": "Nome del gruppo", @@ -280,6 +284,7 @@ "conversation_draft": "Bozza:", "conversation_media_photo": "Foto", "conversation_media_video": "Video", + "conversation_media_round": "Videomessaggio", "conversation_media_document": "File", "conversation_media_sticker": "Sticker", "conversation_media_gif": "GIF", @@ -287,6 +292,7 @@ "conversation_media_location": "Posizione", "conversation_media_contact": "Contatto", "conversation_media_attachment": "Allegato", + "conversation_media_unsupported": "Allegato non supportato", "conversation_search_peer": "Cerca in questa chat", "conversation_group_created": "ha creato il gruppo", "conversation_group_renamed": "ha cambiato il nome del gruppo", @@ -338,6 +344,7 @@ "message_service_changed_channel_photo": "Foto del canale aggiornata", "message_service_removed_channel_photo": "Foto del canale rimossa", "message_service_scored_X": "{'one': 'ha totalizzato {} punto', 'other': 'ha totalizzato {} punti'}", + "message_service_payment_sent": "Pagamento inviato", "message_action_reply": "Rispondi", "message_action_edit": "Modifica", "message_action_delete": "Elimina", @@ -377,6 +384,7 @@ "error_modal_media_not_supported_description": "Il tuo browser non può riprodurre questo file. Prova a scaricarlo e ad aprirlo in un player esterno.", "error_modal_username_not_found_description": "Non esiste alcun account Telegram con l'username che hai fornito.", "error_modal_phonecalls_not_supported_description_md": "Sfortunatamente le chiamate non sono ancora supportate nell'app Web al momento.\n\nPuoi chiamare {user} usando le nostre app mobile o le app native per computer.\n{download-link: Scarica »}", + "error_modal_app_signup_forbidden_md": "Se non hai ancora un account Telegram, per favore **iscriviti** prima da {signup-link: Android / iPhone}.", "error_modal_bad_request_description": "Un parametro è mancante o errato.", "error_modal_unauthorized_description": "L'azione necessita dell'autorizzazione d'accesso. Per favore {login-link: accedi}.", "error_modal_forbidden_description": "Non sei autorizzato a questa operazione.", @@ -408,6 +416,7 @@ "head_media_video": "Video", "head_media_documents": "File", "head_media_audio": "Messaggi vocali", + "head_media_round": "Videomessaggi", "head_media_search": "Cerca", "head_about": "Info", "head_clear_all": "Cancella cronologia", @@ -476,6 +485,9 @@ "im_submit_message": "Invia", "im_submit_edit_message": "Salva", "im_edit_message_title": "Modifica messaggio", + "im_voice_recording_label": "Rilascia fuori da qui per annullare", + "im_voice_recording_cancel_label": "Rilascia per annullare la registrazione", + "im_voice_processing_label": "Elaboro{dots}", "login_sign_in": "Accedi", "login_enter_number_description": "Inserisci il tuo numero di telefono completo.", "login_incorrect_number": "Numero di telefono errato", diff --git a/js/locales/nl-nl.json b/js/locales/nl-nl.json index 0a10e74d..4745459d 100644 --- a/js/locales/nl-nl.json +++ b/js/locales/nl-nl.json @@ -22,6 +22,7 @@ "group_modal_menu_delete_group": "Verwijderen en verlaten", "group_modal_menu_clear_history": "Geschiedenis wissen", "group_modal_delete_group": "Groep verwijderen", + "group_modal_join": "Join group", "group_modal_settings": "Instellingen", "group_modal_notifications": "Meldingen", "group_modal_menu_share_link": "Uitnodigingslink sturen", @@ -38,6 +39,7 @@ "channel_modal_description": "Beschrijving", "channel_modal_share_link": "Link delen", "channel_modal_share_loading": "Laden{dots}", + "channel_modal_menu_edit": "Kanaal wijzigen", "channel_modal_join": "Lid worden van kanaal", "channel_modal_add_member": "Leden toevoegen", "channel_modal_leave_channel": "Kanaal verlaten", @@ -169,6 +171,8 @@ "changelog_modal_header_recent_updates_md": "Recente updates in **Telegram Web**", "changelog_modal_header_new_updates_md": "**Telegram Web** is bijgewerkt!", "changelog_modal_title_current_version": "huidige versie", + "changelog_modal_full_description_md": "Officiële, gratis Telegram app gebaseerd op de Telegram API voor snelheid en veiligheid.\n\nDeze software valt onder de GNU GPL versie 3 licentie.", + "changelog_modal_changelog_link": "Wijzigingen", "group_create_contacts_modal_title": "Nieuwe groep", "group_create_modal_title": "Groep maken", "group_create_name": "Groepsnaam", @@ -280,6 +284,7 @@ "conversation_draft": "Concept:", "conversation_media_photo": "Foto", "conversation_media_video": "Video", + "conversation_media_round": "Videobericht", "conversation_media_document": "Bestand", "conversation_media_sticker": "sticker", "conversation_media_gif": "GIF", @@ -287,6 +292,7 @@ "conversation_media_location": "Locatie", "conversation_media_contact": "Contact", "conversation_media_attachment": "Bijlage", + "conversation_media_unsupported": "Bestandstype niet ondersteund", "conversation_search_peer": "In chat zoeken", "conversation_group_created": "heeft de groep gemaakt", "conversation_group_renamed": "heeft de groepsnaam gewijzigd", @@ -338,6 +344,7 @@ "message_service_changed_channel_photo": "Kanaalfoto bijgewerkt", "message_service_removed_channel_photo": "Kanaalfoto verwijderd", "message_service_scored_X": "{'one': '{} punt', 'other': '{} punten'}", + "message_service_payment_sent": "Betaling verzonden", "message_action_reply": "Antwoord", "message_action_edit": "Wijzig", "message_action_delete": "Verwijder", @@ -377,6 +384,7 @@ "error_modal_media_not_supported_description": "Je browser kan dit mediabestand niet afspelen. Probeer het bestand te downloaden en af te spelen in een vrijstaande afspeelapplicatie.", "error_modal_username_not_found_description": "Geen Telegram-account gevonden voor de opgegeven gebruikersnaam. ", "error_modal_phonecalls_not_supported_description_md": "Helaas zijn oproepen nog niet beschikbaar in de Web-versie.\n\nJe kunt {user} bellen via onze mobiele- of desktop-applicaties.\n{download-link: Download »}", + "error_modal_app_signup_forbidden_md": "Je hebt nog geen Telegram-account, **meld je eerst aan** via {signup-link: Android / iPhone} ", "error_modal_bad_request_description": "Éen van de parameters mist of is ongeldig.", "error_modal_unauthorized_description": "Deze actie vereist authenticatie. {login-link: Inloggen}", "error_modal_forbidden_description": "Je bent niet bevoegd deze bewerking uit te voeren.", @@ -408,6 +416,7 @@ "head_media_video": "Video's", "head_media_documents": "Bestanden", "head_media_audio": "Spraakberichten", + "head_media_round": "Videoberichten", "head_media_search": "Zoeken", "head_about": "Over", "head_clear_all": "Geschiedenis wissen", @@ -476,6 +485,9 @@ "im_submit_message": "Stuur", "im_submit_edit_message": "Opslaan", "im_edit_message_title": "Bericht wijzigen", + "im_voice_recording_label": "Buiten het veld loslaten om te annuleren", + "im_voice_recording_cancel_label": "Release to cancel record", + "im_voice_processing_label": "Verwerken{dots}", "login_sign_in": "Inloggen", "login_enter_number_description": "Kies je land en voer je volledige telefoonnummer in.", "login_incorrect_number": "Onjuist telefoonnummer", diff --git a/js/locales/pt-br.json b/js/locales/pt-br.json index fda174e4..2f9e5712 100644 --- a/js/locales/pt-br.json +++ b/js/locales/pt-br.json @@ -22,6 +22,7 @@ "group_modal_menu_delete_group": "Apagar e sair", "group_modal_menu_clear_history": "Limpar histórico", "group_modal_delete_group": "Apagar grupo", + "group_modal_join": "Join group", "group_modal_settings": "Configurações", "group_modal_notifications": "Notificações", "group_modal_menu_share_link": "Convidar ao grupo via link", @@ -38,6 +39,7 @@ "channel_modal_description": "Descrição", "channel_modal_share_link": "Compartilhar link", "channel_modal_share_loading": "Carregando{dots}", + "channel_modal_menu_edit": "Edit channel", "channel_modal_join": "Entrar no canal", "channel_modal_add_member": "Convidar membros", "channel_modal_leave_channel": "Sair do canal", @@ -169,6 +171,8 @@ "changelog_modal_header_recent_updates_md": "Atualizações recentes no **Telegram Web**", "changelog_modal_header_new_updates_md": "**Telegram Web** foi atualizado!", "changelog_modal_title_current_version": "versão atual", + "changelog_modal_full_description_md": "Official free messaging app based on Telegram API for speed and security.\n\nThis software is licensed under GNU GPL version 3.", + "changelog_modal_changelog_link": "Changelog", "group_create_contacts_modal_title": "Novo grupo", "group_create_modal_title": "Criar grupo", "group_create_name": "Nome do grupo", @@ -280,6 +284,7 @@ "conversation_draft": "Rascunho", "conversation_media_photo": "Foto", "conversation_media_video": "Vídeo", + "conversation_media_round": "Video message", "conversation_media_document": "Arquivo", "conversation_media_sticker": "Sticker", "conversation_media_gif": "GIF", @@ -287,6 +292,7 @@ "conversation_media_location": "Localização", "conversation_media_contact": "Contato", "conversation_media_attachment": "Anexo", + "conversation_media_unsupported": "Unsupported attachment", "conversation_search_peer": "Buscar neste chat", "conversation_group_created": "criou o grupo", "conversation_group_renamed": "alterou o nome do grupo", @@ -338,6 +344,7 @@ "message_service_changed_channel_photo": "Foto do canal atualizada", "message_service_removed_channel_photo": "Foto do canal removida", "message_service_scored_X": "{'one': 'marcou {} ponto', 'other': 'marcou {} pontos'}", + "message_service_payment_sent": "Payment sent", "message_action_reply": "Responder", "message_action_edit": "Editar", "message_action_delete": "Apagar", @@ -377,6 +384,7 @@ "error_modal_media_not_supported_description": "Seu navegador não pode visualizar este tipo de mídia. Tente baixar o arquivo e abri-lo em outro reprodutor. ", "error_modal_username_not_found_description": "Não existe nenhuma conta do Telegram com o número informado.", "error_modal_phonecalls_not_supported_description_md": "Infelizmente as chamadas ainda não são suportadas pelo App Web.\n\nVocê pode ligar para {user} usando nossos apps para celular ou aplicações desktop.\n{download-link: Download »}", + "error_modal_app_signup_forbidden_md": "You don't have a Telegram account yet, please **sign up** with {signup-link: Android / iPhone} first.", "error_modal_bad_request_description": "Um dos parâmetros está faltando ou inválido.", "error_modal_unauthorized_description": "Essa ação requer autorização. Por favor {login-link: entre}.", "error_modal_forbidden_description": "Você não tem permissão para esta ação.", @@ -408,6 +416,7 @@ "head_media_video": "Vídeos", "head_media_documents": "Arquivos", "head_media_audio": "Mensagens de voz", + "head_media_round": "Video messages", "head_media_search": "Pesquisar", "head_about": "Sobre", "head_clear_all": "Limpar histórico", @@ -476,6 +485,9 @@ "im_submit_message": "Enviar", "im_submit_edit_message": "Salvar", "im_edit_message_title": "Editar mensagem", + "im_voice_recording_label": "Release outside this form to cancel", + "im_voice_recording_cancel_label": "Release to cancel record", + "im_voice_processing_label": "Processing{dots}", "login_sign_in": "Entrar", "login_enter_number_description": "Escolha seu país e insira seu número de telefone com DDD.", "login_incorrect_number": "Número de telefone incorreto", diff --git a/js/locales/ru-ru.json b/js/locales/ru-ru.json index 37f1a845..2c17f0e0 100644 --- a/js/locales/ru-ru.json +++ b/js/locales/ru-ru.json @@ -22,6 +22,7 @@ "group_modal_menu_delete_group": "Удалить и выйти", "group_modal_menu_clear_history": "Очистить историю", "group_modal_delete_group": "Удалить группу", + "group_modal_join": "Join group", "group_modal_settings": "Настройки", "group_modal_notifications": "Уведомления", "group_modal_menu_share_link": "Пригласить в группу по ссылке", @@ -38,6 +39,7 @@ "channel_modal_description": "Описание", "channel_modal_share_link": "Поделиться ссылкой", "channel_modal_share_loading": "Загрузка{dots}", + "channel_modal_menu_edit": "Edit channel", "channel_modal_join": "Подписаться на канал", "channel_modal_add_member": "Пригласить участников", "channel_modal_leave_channel": "Покинуть канал", @@ -169,6 +171,8 @@ "changelog_modal_header_recent_updates_md": "Последние обновления в **веб-клиенте Telegram**", "changelog_modal_header_new_updates_md": "**Веб-клиент Telegram** обновился!", "changelog_modal_title_current_version": "текущая версия", + "changelog_modal_full_description_md": "Official free messaging app based on Telegram API for speed and security.\n\nThis software is licensed under GNU GPL version 3.", + "changelog_modal_changelog_link": "Changelog", "group_create_contacts_modal_title": "Новая группа", "group_create_modal_title": "Создать группу", "group_create_name": "Название группы", @@ -280,6 +284,7 @@ "conversation_draft": "Draft:", "conversation_media_photo": "Фотография", "conversation_media_video": "Видео", + "conversation_media_round": "Video message", "conversation_media_document": "Файл", "conversation_media_sticker": "Стикер", "conversation_media_gif": "GIF", @@ -287,6 +292,7 @@ "conversation_media_location": "Местоположение", "conversation_media_contact": "Контакт", "conversation_media_attachment": "Прикрепление", + "conversation_media_unsupported": "Unsupported attachment", "conversation_search_peer": "Search in this chat", "conversation_group_created": "создал(а) группу", "conversation_group_renamed": "изменил(а) название группы", @@ -338,6 +344,7 @@ "message_service_changed_channel_photo": "Фото канала изменено", "message_service_removed_channel_photo": "Фото канала удалено", "message_service_scored_X": "{'one': 'scored {}', 'other': 'scored {}'}", + "message_service_payment_sent": "Payment sent", "message_action_reply": "Ответить", "message_action_edit": "Edit", "message_action_delete": "Удалить", @@ -377,6 +384,7 @@ "error_modal_media_not_supported_description": "Ваш браузер не может воспроизвести этот медиафайл. Попробуйте загрузить этот файл и открыть в стороннем плеере.", "error_modal_username_not_found_description": "Нет аккаунта Telegram с указанным вами именем пользователя.", "error_modal_phonecalls_not_supported_description_md": "Unfortunately calls are not supported in the Web App at the moment.\n\nYou can call {user} using our mobile apps or native desktop applications.\n{download-link: Download »}", + "error_modal_app_signup_forbidden_md": "You don't have a Telegram account yet, please **sign up** with {signup-link: Android / iPhone} first.", "error_modal_bad_request_description": "Один из параметров отсутствует или некорректен.", "error_modal_unauthorized_description": "Для этого действия необходима авторизация. Пожалуйста, {login-link: войдите}.", "error_modal_forbidden_description": "Вам запрещено это действие.", @@ -408,6 +416,7 @@ "head_media_video": "Видео", "head_media_documents": "Файлы", "head_media_audio": "Голосовые сообщения", + "head_media_round": "Video messages", "head_media_search": "Search", "head_about": "О приложении", "head_clear_all": "Clear history", @@ -476,6 +485,9 @@ "im_submit_message": "Отправить", "im_submit_edit_message": "Save", "im_edit_message_title": "Edit message", + "im_voice_recording_label": "Release outside this form to cancel", + "im_voice_recording_cancel_label": "Release to cancel record", + "im_voice_processing_label": "Processing{dots}", "login_sign_in": "Войти", "login_enter_number_description": "Выберите вашу страну из списка и введите номер телефона:", "login_incorrect_number": "Некорректный номер", diff --git a/service_worker.js b/service_worker.js index a05a8027..9321bc97 100644 --- a/service_worker.js +++ b/service_worker.js @@ -31,7 +31,7 @@ importScripts("js/lib/push_worker.js"); /* eslint-disable quotes, comma-spacing */ -var PrecacheConfig = [["badbrowser.html","cfb725c2ffb8df1fdf3efad6c69f7aa4"],["css/app.css","63c433f0c2d27556bf530d885716bb89"],["css/badbrowser.css","7e92b60c34ecea6d87dfeb1c64928a09"],["css/desktop.css","bbe9cff824fc5aa3f2edc35059e18686"],["css/mobile.css","e1e1a102e77e0cc72e8e3897e379197b"],["favicon.ico","fb606fe0a27a1c62bdfc48561d908f39"],["favicon_unread.ico","b3a7e3414d29305250f377be7ab1e3e2"],["img/Manytabs.png","2bbd15e6ddf8c0212ccbedf7abd1c77e"],["img/Manytabs_2x.png","7a71629a5e4f7482b6320b103f1d543c"],["img/Telegram.png","85cd9ed3491576ba5e6ed3a9336f116f"],["img/Telegram.svg","4964c9bbfba510f495319c52562d70d4"],["img/Telegram72.png","1125082924531bd25844bc89a8f394e3"],["img/Telegram72_2x.png","0e7d8c7a5ba3f56eaa3123b97b8922b0"],["img/Telegram_2x.png","5f9f549b9d6bee5b0e4ac2141621b632"],["img/blank.gif","56398e76be6355ad5999b262208a17c9"],["img/changelog/card_wecandoit.png","3a0e66db81d0ea06166dd13fd8029aed"],["img/emojisprite_0.png","a279a9ce5721c10b6908b5f20cf5dda2"],["img/emojisprite_1.png","8db4db65bc5526baae9fb363d2ba3827"],["img/emojisprite_2.png","ff3a6afdb36b22d428aaebda31c8f2d7"],["img/emojisprite_3.png","54af1766e3f6ac1a79d8342c869ae3e7"],["img/emojisprite_4.png","e21d1b6c310a5bdfea043093623c270e"],["img/icons/AboutLogos.png","35d8405d003067c9d707bc5d65152d67"],["img/icons/AboutLogos_2x.png","b9e82c6df1d0782b45eb3d6a3461e5cc"],["img/icons/General.png","10639598adc8046b54dfa15d2e6443d0"],["img/icons/General_2x.png","5270d71cd78fd282a3736b0e6ae7f048"],["img/icons/IconsetSmiles.png","b639ed6a2b91d707dafe7861e0aee93b"],["img/icons/IconsetSmiles_2x.png","f9385d002e9cd787d704c26eaa4e6b9b"],["img/icons/IconsetW.png","1afbc8040b6c671431d27c3e25e84545"],["img/icons/IconsetW_2x.png","f01cec9bccc80a678ed0ec04acecade2"],["img/icons/Major.png","f647639ac513b1b536ada5a0c8771a7b"],["img/icons/Major_2x.png","73ed42f9ad14e613c20b4fbaaa566cc1"],["img/icons/MobileIcons.png","98d22350c7a4a25456074b40509fa954"],["img/icons/MobileIcons_2x.png","4bd2be1096ac23847a1ac6981a666652"],["img/icons/PhotoIcons.png","23a876a0e0c97b8e63be3c03bc372c24"],["img/icons/PhotoIcons_2x.png","292582f6e1b991b28242dfaf0b6b3667"],["img/icons/ProfileIcons.png","e94f10d7230ce03b5b961055aec1072d"],["img/icons/ProfileIcons_2x.png","11e2549774d7e05bf82448f15838572e"],["img/icons/icon.svg","a0cd37dd90703fc27a9bc98e076c5158"],["img/icons/icon120.png","f5856bbec8d918d921e7ab733319b24e"],["img/icons/icon128.png","e89aea693493e8a6b727417d99c3345c"],["img/icons/icon16.png","78b34ae9efbd05a8588040649a01b8de"],["img/icons/icon192.png","7316e15eb09d45413b65bad597c0762e"],["img/icons/icon32.png","0843d36cbaf7172c87b27aba4a1a3787"],["img/icons/icon512.png","73a8fe87836f0916d61a89f96a223189"],["img/icons/icon60.png","0e99d9872818ad3bf80a57c65f7ab01f"],["img/icons/icon64.png","30bd04ee092bde79aaf61a09e0d2ac8f"],["img/icons/icon90.png","ec811df90200dc5ca319629ed9a26eb6"],["img/iphone_home120.png","86b05c2c7e8ad0de8204789716898da4"],["img/iphone_startup.png","435b6009c9339a57dd4092e57ea466df"],["img/logo_share.png","ddf6cddc068b7cc2eac1af77ad9da4be"],["img/placeholders/DialogListAvatarSystem@2x.png","4f9f71e3b925ffc22994ad369c6e89d2"],["img/placeholders/GroupAvatar1@2x.png","6b03ad1a83390a7833d053e61489accb"],["img/placeholders/GroupAvatar2@2x.png","cc24ed051254b8fd7c4d922c00fd226c"],["img/placeholders/GroupAvatar3@2x.png","bdfbb7e8c41efb40a8f73763f9d0c87b"],["img/placeholders/GroupAvatar4@2x.png","d2331f23158ae401b5b44cc135cb7c29"],["img/placeholders/PhotoThumbConversation.gif","56398e76be6355ad5999b262208a17c9"],["img/placeholders/PhotoThumbModal.gif","56398e76be6355ad5999b262208a17c9"],["img/placeholders/UserAvatar1@2x.png","27be09024c0bc78aa6469c7b2179400b"],["img/placeholders/UserAvatar2@2x.png","9ccf627d5bd7319e01e973584cd4441f"],["img/placeholders/UserAvatar3@2x.png","14b44e53a00014723acabee293c1e35a"],["img/placeholders/UserAvatar4@2x.png","b4fab5ac3d9100e8aa4670cfed4ada37"],["img/placeholders/UserAvatar5@2x.png","311ffa6462b8978e12b66e3902549e1d"],["img/placeholders/UserAvatar6@2x.png","3a52d80f3d3356e4051350dd1939982f"],["img/placeholders/UserAvatar7@2x.png","7135b26aacaaae0a59a2c32e8096fbc6"],["img/placeholders/UserAvatar8@2x.png","13f581d89c13b7c27338a548390d6765"],["img/placeholders/VideoThumbConversation.gif","56398e76be6355ad5999b262208a17c9"],["img/placeholders/VideoThumbModal.gif","56398e76be6355ad5999b262208a17c9"],["img/sound_a.mp3","eba09b6a457792c52fc610b5f9f974b3"],["index.html","56771c38452d1cb7f55fd1a31324a57b"],["js/background.js","04f4f8fed7aa4fe5ba83d865e804a319"],["js/lib/bin_utils.js","0c5461b278281c28b50fd04eed03a5a4"],["js/lib/crypto_worker.js","e47f2771b0305772e17e1b9cd50c93b8"],["js/lib/polyfill.js","d985db7b290fc8c999b950722b2602fa"],["js/lib/push_worker.js","f21a9319b7ea4f7ed13f3e780506071c"],["js/locales/de-de.json","23630f27cb23a6e8bb19cb493715ccd4"],["js/locales/en-us.json","69267a5f2045481852dd6839a2bed80a"],["js/locales/es-es.json","a9f95a97ef2d9a523caa0b6cad8befad"],["js/locales/it-it.json","14af7f1e8190b71c1a12121e772e2012"],["js/locales/nl-nl.json","b2640ed3bb2bc011d934c782eeaa4260"],["js/locales/pt-br.json","c671459160d47c3e1fdcf159918c542e"],["js/locales/ru-ru.json","8d4434d7bc0bfc5aea3cbe72be12fb61"],["manifest.json","0ee17f2d8dfca0a030fba1e0df87c8e8"],["manifest.webapp","12f40065c70d02e8ac479609fd710d92"],["manifest.webapp.json","3351cf52919fd437e806a1b5becd50eb"],["nacl/mtproto_crypto.nmf","f7cbc5ecce97f184041bf7e56e30a925"],["nacl/mtproto_crypto.pexe","9b0030189b74b07a96908bc00ca2df54"],["vendor/angular/i18n/angular-locale_de-de.js","bef8329c258f22d04189439c38321ad6"],["vendor/angular/i18n/angular-locale_en-us.js","4e84db290d2e1743fa3b8a199683c146"],["vendor/angular/i18n/angular-locale_es-es.js","1f6e4e2bc7658c602bef7d5db8b61af1"],["vendor/angular/i18n/angular-locale_it-it.js","93a0645abafb9ac6da0ca03fd78f922c"],["vendor/angular/i18n/angular-locale_nl-nl.js","e264b0fbe7e107397893e04fd6c4b071"],["vendor/angular/i18n/angular-locale_pt-br.js","1b07dd4fe830f6404f03e300f6454489"],["vendor/angular/i18n/angular-locale_ru-ru.js","7693713aa5d07d2aa7a9e95fe0948d58"],["vendor/closure/long.js","b0a35c095dc09f1fd10de13953946b82"],["vendor/cryptoJS/crypto.js","6d1ac0184656afab590fbf06e7bc8c5d"],["vendor/jsbn/jsbn_combined.js","d7eb1b82e658eef11ce3d8fd9caf10d5"],["vendor/leemon_bigint/bigint.js","99290db3a3369437ba0d44152dc36ba1"],["vendor/recorderjs/encoder_worker.js","bc93f3c524cb7e8965283c14203b6783"],["vendor/rusha/rusha.js","779d54331470a66576a5292e61fc1680"]]; +var PrecacheConfig = [["badbrowser.html","cfb725c2ffb8df1fdf3efad6c69f7aa4"],["css/app.css","63c433f0c2d27556bf530d885716bb89"],["css/badbrowser.css","7e92b60c34ecea6d87dfeb1c64928a09"],["css/desktop.css","bbe9cff824fc5aa3f2edc35059e18686"],["css/mobile.css","e1e1a102e77e0cc72e8e3897e379197b"],["favicon.ico","fb606fe0a27a1c62bdfc48561d908f39"],["favicon_unread.ico","b3a7e3414d29305250f377be7ab1e3e2"],["img/Manytabs.png","2bbd15e6ddf8c0212ccbedf7abd1c77e"],["img/Manytabs_2x.png","7a71629a5e4f7482b6320b103f1d543c"],["img/Telegram.png","85cd9ed3491576ba5e6ed3a9336f116f"],["img/Telegram.svg","4964c9bbfba510f495319c52562d70d4"],["img/Telegram72.png","1125082924531bd25844bc89a8f394e3"],["img/Telegram72_2x.png","0e7d8c7a5ba3f56eaa3123b97b8922b0"],["img/Telegram_2x.png","5f9f549b9d6bee5b0e4ac2141621b632"],["img/blank.gif","56398e76be6355ad5999b262208a17c9"],["img/changelog/card_wecandoit.png","3a0e66db81d0ea06166dd13fd8029aed"],["img/emojisprite_0.png","a279a9ce5721c10b6908b5f20cf5dda2"],["img/emojisprite_1.png","8db4db65bc5526baae9fb363d2ba3827"],["img/emojisprite_2.png","ff3a6afdb36b22d428aaebda31c8f2d7"],["img/emojisprite_3.png","54af1766e3f6ac1a79d8342c869ae3e7"],["img/emojisprite_4.png","e21d1b6c310a5bdfea043093623c270e"],["img/icons/AboutLogos.png","35d8405d003067c9d707bc5d65152d67"],["img/icons/AboutLogos_2x.png","b9e82c6df1d0782b45eb3d6a3461e5cc"],["img/icons/General.png","10639598adc8046b54dfa15d2e6443d0"],["img/icons/General_2x.png","5270d71cd78fd282a3736b0e6ae7f048"],["img/icons/IconsetSmiles.png","b639ed6a2b91d707dafe7861e0aee93b"],["img/icons/IconsetSmiles_2x.png","f9385d002e9cd787d704c26eaa4e6b9b"],["img/icons/IconsetW.png","1afbc8040b6c671431d27c3e25e84545"],["img/icons/IconsetW_2x.png","f01cec9bccc80a678ed0ec04acecade2"],["img/icons/Major.png","f647639ac513b1b536ada5a0c8771a7b"],["img/icons/Major_2x.png","73ed42f9ad14e613c20b4fbaaa566cc1"],["img/icons/MobileIcons.png","98d22350c7a4a25456074b40509fa954"],["img/icons/MobileIcons_2x.png","4bd2be1096ac23847a1ac6981a666652"],["img/icons/PhotoIcons.png","23a876a0e0c97b8e63be3c03bc372c24"],["img/icons/PhotoIcons_2x.png","292582f6e1b991b28242dfaf0b6b3667"],["img/icons/ProfileIcons.png","e94f10d7230ce03b5b961055aec1072d"],["img/icons/ProfileIcons_2x.png","11e2549774d7e05bf82448f15838572e"],["img/icons/icon.svg","a0cd37dd90703fc27a9bc98e076c5158"],["img/icons/icon120.png","f5856bbec8d918d921e7ab733319b24e"],["img/icons/icon128.png","e89aea693493e8a6b727417d99c3345c"],["img/icons/icon16.png","78b34ae9efbd05a8588040649a01b8de"],["img/icons/icon192.png","7316e15eb09d45413b65bad597c0762e"],["img/icons/icon32.png","0843d36cbaf7172c87b27aba4a1a3787"],["img/icons/icon512.png","73a8fe87836f0916d61a89f96a223189"],["img/icons/icon60.png","0e99d9872818ad3bf80a57c65f7ab01f"],["img/icons/icon64.png","30bd04ee092bde79aaf61a09e0d2ac8f"],["img/icons/icon90.png","ec811df90200dc5ca319629ed9a26eb6"],["img/iphone_home120.png","86b05c2c7e8ad0de8204789716898da4"],["img/iphone_startup.png","435b6009c9339a57dd4092e57ea466df"],["img/logo_share.png","ddf6cddc068b7cc2eac1af77ad9da4be"],["img/placeholders/DialogListAvatarSystem@2x.png","4f9f71e3b925ffc22994ad369c6e89d2"],["img/placeholders/GroupAvatar1@2x.png","6b03ad1a83390a7833d053e61489accb"],["img/placeholders/GroupAvatar2@2x.png","cc24ed051254b8fd7c4d922c00fd226c"],["img/placeholders/GroupAvatar3@2x.png","bdfbb7e8c41efb40a8f73763f9d0c87b"],["img/placeholders/GroupAvatar4@2x.png","d2331f23158ae401b5b44cc135cb7c29"],["img/placeholders/PhotoThumbConversation.gif","56398e76be6355ad5999b262208a17c9"],["img/placeholders/PhotoThumbModal.gif","56398e76be6355ad5999b262208a17c9"],["img/placeholders/UserAvatar1@2x.png","27be09024c0bc78aa6469c7b2179400b"],["img/placeholders/UserAvatar2@2x.png","9ccf627d5bd7319e01e973584cd4441f"],["img/placeholders/UserAvatar3@2x.png","14b44e53a00014723acabee293c1e35a"],["img/placeholders/UserAvatar4@2x.png","b4fab5ac3d9100e8aa4670cfed4ada37"],["img/placeholders/UserAvatar5@2x.png","311ffa6462b8978e12b66e3902549e1d"],["img/placeholders/UserAvatar6@2x.png","3a52d80f3d3356e4051350dd1939982f"],["img/placeholders/UserAvatar7@2x.png","7135b26aacaaae0a59a2c32e8096fbc6"],["img/placeholders/UserAvatar8@2x.png","13f581d89c13b7c27338a548390d6765"],["img/placeholders/VideoThumbConversation.gif","56398e76be6355ad5999b262208a17c9"],["img/placeholders/VideoThumbModal.gif","56398e76be6355ad5999b262208a17c9"],["img/sound_a.mp3","eba09b6a457792c52fc610b5f9f974b3"],["index.html","56771c38452d1cb7f55fd1a31324a57b"],["js/background.js","04f4f8fed7aa4fe5ba83d865e804a319"],["js/lib/bin_utils.js","0c5461b278281c28b50fd04eed03a5a4"],["js/lib/crypto_worker.js","e47f2771b0305772e17e1b9cd50c93b8"],["js/lib/polyfill.js","d985db7b290fc8c999b950722b2602fa"],["js/lib/push_worker.js","f21a9319b7ea4f7ed13f3e780506071c"],["js/locales/de-de.json","c3e1bf91c683076ad6c768d1be23ab87"],["js/locales/en-us.json","afaab915c7d8509026e620faed51fe5a"],["js/locales/es-es.json","284b1ad58bd1fb7dc79b12ec9f833391"],["js/locales/it-it.json","569b7a92e8cfd9133e4e46e184b22c3a"],["js/locales/nl-nl.json","7c0af883b228985ba3ca456490a709d1"],["js/locales/pt-br.json","3356c1f4377bed363e4ac7b3a49acaf5"],["js/locales/ru-ru.json","d41e2f8b1a5ee135b1a828ebfa834d97"],["manifest.json","0ee17f2d8dfca0a030fba1e0df87c8e8"],["manifest.webapp","12f40065c70d02e8ac479609fd710d92"],["manifest.webapp.json","3351cf52919fd437e806a1b5becd50eb"],["nacl/mtproto_crypto.nmf","f7cbc5ecce97f184041bf7e56e30a925"],["nacl/mtproto_crypto.pexe","9b0030189b74b07a96908bc00ca2df54"],["vendor/angular/i18n/angular-locale_de-de.js","bef8329c258f22d04189439c38321ad6"],["vendor/angular/i18n/angular-locale_en-us.js","4e84db290d2e1743fa3b8a199683c146"],["vendor/angular/i18n/angular-locale_es-es.js","1f6e4e2bc7658c602bef7d5db8b61af1"],["vendor/angular/i18n/angular-locale_it-it.js","93a0645abafb9ac6da0ca03fd78f922c"],["vendor/angular/i18n/angular-locale_nl-nl.js","e264b0fbe7e107397893e04fd6c4b071"],["vendor/angular/i18n/angular-locale_pt-br.js","1b07dd4fe830f6404f03e300f6454489"],["vendor/angular/i18n/angular-locale_ru-ru.js","7693713aa5d07d2aa7a9e95fe0948d58"],["vendor/closure/long.js","b0a35c095dc09f1fd10de13953946b82"],["vendor/cryptoJS/crypto.js","6d1ac0184656afab590fbf06e7bc8c5d"],["vendor/jsbn/jsbn_combined.js","d7eb1b82e658eef11ce3d8fd9caf10d5"],["vendor/leemon_bigint/bigint.js","99290db3a3369437ba0d44152dc36ba1"],["vendor/recorderjs/encoder_worker.js","bc93f3c524cb7e8965283c14203b6783"],["vendor/rusha/rusha.js","779d54331470a66576a5292e61fc1680"]]; /* eslint-enable quotes, comma-spacing */ var CacheNamePrefix = 'sw-precache-v1-Telegram-' + (self.registration ? self.registration.scope : '') + '-'; diff --git a/webogram.appcache b/webogram.appcache index d542c68b..11d90f54 100644 --- a/webogram.appcache +++ b/webogram.appcache @@ -8,7 +8,6 @@ service_worker.js css/app.css css/desktop.css css/mobile.css -js/app.js img/Manytabs.png img/Manytabs_2x.png img/Telegram.png @@ -26,37 +25,10 @@ img/iphone_home120.png img/iphone_startup.png img/logo_share.png img/sound_a.mp3 +js/app.js nacl/mtproto_crypto.nmf nacl/mtproto_crypto.pexe -js/lib/bin_utils.js -js/lib/crypto_worker.js -js/lib/polyfill.js -js/lib/push_worker.js -js/locales/de-de.json -js/locales/en-us.json -js/locales/es-es.json -js/locales/it-it.json -js/locales/nl-nl.json -js/locales/pt-br.json -js/locales/ru-ru.json img/changelog/card_wecandoit.png -img/icons/AboutLogos.png -img/icons/AboutLogos_2x.png -img/icons/General.png -img/icons/General_2x.png -img/icons/IconsetSmiles.png -img/icons/IconsetSmiles_2x.png -img/icons/IconsetW.png -img/icons/IconsetW_2x.png -img/icons/Major.png -img/icons/Major_2x.png -img/icons/MobileIcons.png -img/icons/MobileIcons_2x.png -img/icons/PhotoIcons.png -img/icons/PhotoIcons_2x.png -img/icons/ProfileIcons.png -img/icons/ProfileIcons_2x.png -img/icons/icon.svg img/placeholders/DialogListAvatarSystem@2x.png img/placeholders/GroupAvatar1@2x.png img/placeholders/GroupAvatar2@2x.png @@ -74,6 +46,34 @@ img/placeholders/UserAvatar7@2x.png img/placeholders/UserAvatar8@2x.png img/placeholders/VideoThumbConversation.gif img/placeholders/VideoThumbModal.gif +img/icons/AboutLogos.png +img/icons/AboutLogos_2x.png +img/icons/General.png +img/icons/General_2x.png +img/icons/IconsetSmiles.png +img/icons/IconsetSmiles_2x.png +img/icons/IconsetW.png +img/icons/IconsetW_2x.png +img/icons/Major.png +img/icons/Major_2x.png +img/icons/MobileIcons.png +img/icons/MobileIcons_2x.png +img/icons/PhotoIcons.png +img/icons/PhotoIcons_2x.png +img/icons/ProfileIcons.png +img/icons/ProfileIcons_2x.png +img/icons/icon.svg +js/lib/bin_utils.js +js/lib/crypto_worker.js +js/lib/polyfill.js +js/lib/push_worker.js +js/locales/de-de.json +js/locales/en-us.json +js/locales/es-es.json +js/locales/it-it.json +js/locales/nl-nl.json +js/locales/pt-br.json +js/locales/ru-ru.json vendor/closure/long.js vendor/cryptoJS/crypto.js vendor/jsbn/jsbn_combined.js @@ -94,4 +94,4 @@ http://* https://* * -# hash: 038f51ca078c627d3df989577d5e4f17b3a0175b52aac385266db1c45dfd62a0 \ No newline at end of file +# hash: 8b8f21e1256ea4856a22c117708f12746c050bf0ac2ec0e20ca9c24159fc8c8e \ No newline at end of file