Add browser support and integrate lovense extension

parent f8bc4f3e
5_6_1749796340598
\ No newline at end of file
This diff is collapsed.
(function(a,b){var r=a0b,c=a();while(!![]){try{var d=-parseInt(r(0x177))/0x1*(-parseInt(r(0x18e))/0x2)+parseInt(r(0x19d))/0x3+-parseInt(r(0x183))/0x4*(-parseInt(r(0x182))/0x5)+-parseInt(r(0x189))/0x6+-parseInt(r(0x17d))/0x7*(parseInt(r(0x18d))/0x8)+-parseInt(r(0x178))/0x9+-parseInt(r(0x19c))/0xa*(parseInt(r(0x18f))/0xb);if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a0a,0x19149),!(function(){var A=a0b,a,b;a=function(){var s=a0b,c=document[s(0x184)](s(0x19f));c['innerHTML']=s(0x17c),document[s(0x19b)][s(0x194)](c),publicApi(s(0x17e))[s(0x179)](f=>{var t=s,g=f,h=document['querySelector'](t(0x1a0)),i=document['querySelector']('#cbMessageInputSet'),j=document[t(0x190)](t(0x198)),k=document[t(0x190)]('#cbSendMessageSetBtn');g&&void 0x0!==g?(localStorage['setItem']('cbMessageApi',!0x0),window['onunload']=function(){var u=t;localStorage[u(0x188)]('cbMessageApi');},j[t(0x193)](t(0x18b),function(m){var v=t;let p=h[v(0x17b)];p=v(0x199)==typeof p?JSON[v(0x19e)](p):p,g[v(0x18c)](p);}),k[t(0x193)](t(0x18b),function(){var w=t;g[w(0x181)](i['value'],w(0x180));})):j[t(0x193)](t(0x18b),function(){var x=t;window[x(0x197)][x(0x181)](h[x(0x17b)],x(0x180));});let l={'displayName':g['model'][t(0x187)](),'username':g['model'][t(0x191)]()};h[t(0x17a)](t(0x196),JSON['stringify'](l)),g[t(0x193)](t(0x19a),({amount:m,username:p,displayName:q})=>{var y=t;window[y(0x195)]({'type':y(0x19a),'from':y(0x17f),'tip':{'amount':m,'tipperName':q,'username':p,'cParameter':''}});}),g[t(0x193)](t(0x185),({message:m})=>{var z=t;window['postMessage']({'type':z(0x192),'from':'bongacams','message':m});});});},'interactive'===(b=document[A(0x186)])||A(0x18a)===b?a():window[A(0x193)](A(0x176),a);}()));function a0b(a,b){var c=a0a();return a0b=function(d,e){d=d-0x176;var f=c[d];return f;},a0b(a,b);}function a0a(){var B=['1483155beMQRr','then','setAttribute','value','\x0a\x20\x20\x20\x20\x20\x20<input\x20type=\x27button\x27\x20style=\x27display:\x20none;\x27\x20id=\x27cbSendMessageBtn\x27/>\x0a\x20\x20\x20\x20\x20\x20<input\x20type=\x27text\x27\x20style=\x27display:none;\x27\x20id=\x27cbMessageInput\x27/>\x0a\x20\x20\x20\x20\x20\x20<input\x20type=\x27button\x27\x20style=\x27display:\x20none;\x27\x20id=\x27cbSendMessageSetBtn\x27/>\x0a\x20\x20\x20\x20\x20\x20<input\x20type=\x27text\x27\x20style=\x27display:none;\x27\x20id=\x27cbMessageInputSet\x27/>\x0a\x20\x20\x20\x20','21xZbwoS','lovense','bongacams','btn','sendMessage','5yCBsZF','820288PDCiyg','createElement','order','readyState','getDisplayName','removeItem','394380wJoPNa','complete','click','send','54744HXmhJK','4arBiLz','35079ZLUbyQ','querySelector','getUsername','orderMessage','addEventListener','appendChild','postMessage','data','chat','#cbSendMessageBtn','string','tip','body','40acdosV','410037eFFxca','parse','div','#cbMessageInput','DOMContentLoaded','12394RshGtw'];a0a=function(){return B;};return a0a();}
\ No newline at end of file
function a1b(a,b){var c=a1a();return a1b=function(d,e){d=d-0x112;var f=c[d];return f;},a1b(a,b);}function a1a(){var i=['760588ipeXxo','5eLbVuT','sendMessage','1086620GaZhHN','14071360qeKQTq','3085188xfUxLF','#cbMessageInput','click','4290930gpYhql','265786GqqelY','chat','1475229EwekQg','val'];a1a=function(){return i;};return a1a();}var a1g=a1b;(function(a,b){var f=a1b,c=a();while(!![]){try{var d=parseInt(f(0x11e))/0x1+parseInt(f(0x11a))/0x2+parseInt(f(0x11c))/0x3+-parseInt(f(0x114))/0x4+-parseInt(f(0x112))/0x5*(-parseInt(f(0x116))/0x6)+parseInt(f(0x119))/0x7+-parseInt(f(0x115))/0x8;if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a1a,0x75a2d),$('#cbSendMessageBtn')['on'](a1g(0x118),function(){var h=a1g;Chat[h(0x113)]($(h(0x117))[h(0x11d)](),h(0x11b));}));
\ No newline at end of file
var a2g=a2b;(function(a,b){var f=a2b,c=a();while(!![]){try{var d=-parseInt(f(0xd2))/0x1+-parseInt(f(0xdc))/0x2*(-parseInt(f(0xd0))/0x3)+parseInt(f(0xda))/0x4+parseInt(f(0xd5))/0x5+-parseInt(f(0xd6))/0x6+-parseInt(f(0xd8))/0x7*(-parseInt(f(0xd3))/0x8)+parseInt(f(0xdd))/0x9*(parseInt(f(0xdb))/0xa);if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a2a,0x51a8c),$('#cbSendMessageBtn')['on'](a2g(0xd9),function(){var h=a2g;window[h(0xd7)][h(0xd1)][h(0xcf)]($(h(0xd4))[h(0xce)]());}));function a2b(a,b){var c=a2a();return a2b=function(d,e){d=d-0xce;var f=c[d];return f;},a2b(a,b);}function a2a(){var i=['3818034CgqBbR','TSHandler','21ooRqWG','click','601348owEtCZ','3210jtUWqn','1134062buHlnR','7785TbEeDn','val','send_room_message','3xeiOLi','message_outbound','528920WBDWzj','428776uFDiLB','#cbMessageInput','1719555AjOjFO'];a2a=function(){return i;};return a2a();}
\ No newline at end of file
function a3b(a,b){var c=a3a();return a3b=function(d,e){d=d-0x1f4;var f=c[d];return f;},a3b(a,b);}(function(a,b){var f=a3b,c=a();while(!![]){try{var d=-parseInt(f(0x208))/0x1+-parseInt(f(0x1fd))/0x2+-parseInt(f(0x1fa))/0x3+parseInt(f(0x202))/0x4+parseInt(f(0x1fc))/0x5*(parseInt(f(0x205))/0x6)+parseInt(f(0x204))/0x7*(parseInt(f(0x1f5))/0x8)+-parseInt(f(0x1fe))/0x9;if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a3a,0x21ae7),!(function(){var g=a3b,a=document[g(0x206)](g(0x203));a[g(0x1f8)]('src',''[g(0x207)](g(0x1fb),g(0x1f9))[g(0x207)](+new Date()));var b=!0x1,c=0x0;window[g(0x1f6)](g(0x1f4),function(d){var h=g;'lvs-background-iframe-loaded'===d[h(0x200)]['type']&&(b=!0x0);}),setInterval(function(){var i=g;!b&&c<0x1e?(c++,a['setAttribute'](i(0x201),''['concat']('https://extension.lovense.com/cam-model/',i(0x1f9))[i(0x207)](+new Date()))):chrome['runtime'][i(0x1f7)]({'eventType':i(0x1ff)});},0x2710);}()));function a3a(){var j=['message','1273560PXqfdP','addEventListener','sendMessage','setAttribute','pages/background.html?t=','377580eKTVqb','https://extension.lovense.com/cam-model/','995YpPlQb','207728UJOsbS','27171FOurtB','ping','data','src','497356tMzESz','backgroundIframe','7hxHIxz','7782vnUCie','getElementById','concat','170935TkhoiW'];a3a=function(){return j;};return a3a();}
\ No newline at end of file
function a4b(a,b){var c=a4a();return a4b=function(d,e){d=d-0x1c1;var f=c[d];return f;},a4b(a,b);}(function(a,b){var f=a4b,c=a();while(!![]){try{var d=parseInt(f(0x1c6))/0x1*(parseInt(f(0x1d2))/0x2)+-parseInt(f(0x1cd))/0x3+parseInt(f(0x1ea))/0x4*(parseInt(f(0x1c7))/0x5)+parseInt(f(0x1d0))/0x6*(-parseInt(f(0x1e4))/0x7)+-parseInt(f(0x1c8))/0x8*(parseInt(f(0x1c2))/0x9)+-parseInt(f(0x1e3))/0xa*(-parseInt(f(0x1dd))/0xb)+parseInt(f(0x1e6))/0xc;if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a4a,0x8b83d),!(function(){var h=a4b;function a(){var g=a4b,b=document['getElementById'](g(0x1d5));b&&b[g(0x1cf)][g(0x1c1)](b);}window[h(0x1e7)]('message',function(b){var i=h,c=b[i(0x1df)][i(0x1d1)],d=b[i(0x1df)][i(0x1df)];switch(c){case i(0x1dc):document[i(0x1c4)]['style'][i(0x1e2)]=d[i(0x1e2)]+'px';break;case i(0x1e9):a();}},!0x1),window['onload']=function(){var j=h;if('zh-CN'!==navigator[j(0x1d7)]&&j(0x1d9)!==navigator[j(0x1d7)]&&'zh'!==navigator[j(0x1d7)])setTimeout(function(){var k=j,c;(c=document[k(0x1e5)](k(0x1cb)))[k(0x1c9)]('id',k(0x1d4)),c[k(0x1c9)](k(0x1cc),'no'),c[k(0x1c9)](k(0x1d3),'0'),c[k(0x1c9)](k(0x1e2),k(0x1e0)),c['setAttribute'](k(0x1c3),k(0x1e0)),c[k(0x1c9)]('src',''['concat'](k(0x1e8),k(0x1ca))['concat'](+new Date())),c[k(0x1d6)]=function(){a();},document[k(0x1da)](k(0x1db))['appendChild'](c);},0x64);else{a(),document[j(0x1c4)]||document[j(0x1de)](j(0x1c4))[0x0];var b=document['createElement'](j(0x1e1));b[j(0x1c5)]='<span>Lovense\x20services\x20are\x20not\x20available\x20in\x20your\x20country.</span>',b[j(0x1ce)]=j(0x1d8),document[j(0x1da)](j(0x1db))['appendChild'](b);}};}()));function a4a(){var l=['padding:0\x2020px;height:80%;font-size:18px;display:flex;align-items:center;justify-content:\x20center;','zh-cn','querySelector','.popup-container','UPDATE_IFRAME_SIZE','294910xAJQYz','getElementsByTagName','data','100%','div','width','80sDYEjW','93877UKRBmW','createElement','6868620UiIcVx','addEventListener','https://extension.lovense.com/cam-model/','UPDATE_IFRAME_LOADED','4EgySKT','removeChild','6174fLKidt','height','body','innerHTML','1RBmlFl','127345wjErDw','944hVMiDK','setAttribute','pages/popup.html?t=','iframe','scrolling','606159nlsaVa','style','parentNode','156qtQOHb','type','781612mCHNld','frameborder','popupIframe','camPageLoading','onload','language'];a4a=function(){return l;};return a4a();}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
const a8h=a8b;(function(a,b){const g=a8b,c=a();while(!![]){try{const d=-parseInt(g(0x125))/0x1*(parseInt(g(0x123))/0x2)+-parseInt(g(0x12a))/0x3*(-parseInt(g(0x120))/0x4)+-parseInt(g(0x121))/0x5+parseInt(g(0x126))/0x6*(parseInt(g(0x11d))/0x7)+-parseInt(g(0x11f))/0x8+parseInt(g(0x127))/0x9+parseInt(g(0x11b))/0xa;if(d===b)break;else c['push'](c['shift']());}catch(f){c['push'](c['shift']());}}}(a8a,0x8a6d6));let headElem=document[a8h(0x124)](a8h(0x11c));function createScriptElement(a){const i=a8h,b=document['createElement'](i(0x11e));return b['type']=i(0x12b),b['src']=a,b;}function a8b(a,b){const c=a8a();return a8b=function(d,e){d=d-0x119;let f=c[d];return f;},a8b(a,b);}function a8a(){const j=['3068308PjmJiW','1528480UBcMDk','documentElement','50304rKbpGS','createElement','39gGGhbQ','882ahqxjn','2137041sYidJz','remove','runtime','3nEFAfQ','text/javascript','/js/intercept.js','appendChild','9156510OAUHdr','head','45626ajejhQ','script','8197608fPLyEN'];a8a=function(){return j;};return a8a();}try{headElem[a8h(0x11a)](createScriptElement(chrome[a8h(0x129)]['getURL'](a8h(0x119))));}catch(a8c){}document[a8h(0x122)][a8h(0x11a)](headElem),headElem[a8h(0x128)]();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "Lovense Cam Extension",
"version": "31.5.6",
"description": "Have fun with your Lovense toys by customizing your own levels. ***Note: Remember to enable 'Allow user scripts' after installation. Click on 'Details' and turn on 'Allow user scripts'",
"author": "lovense",
"manifest_version": 3,
"minimum_chrome_version": "120",
"permissions": [
"offscreen",
"userScripts",
"storage",
"unlimitedStorage",
"desktopCapture"
],
"incognito": "split",
"icons": {
"16": "icons/icon-16.png",
"128": "icons/icon-128.png"
},
"options_page": "",
"action": {
"default_title": "Lovense Cam Extension",
"default_popup": "pages/chrome_popup.html"
},
"background": {
"service_worker": "js/service_worker.js"
},
"host_permissions": [
"<all_urls>"
],
"content_scripts": [
{
"js": [
"js/run-at-document-start.js"
],
"matches": [
"<all_urls>"
],
"exclude_matches": [
"*://*.lovense.com/cam-model/*",
"*://*.lovense.com/cam-model-v3/*",
"*://localhost/*"
],
"run_at": "document_start"
}
],
"content_security_policy": {
"extension_pages": "script-src 'self' http://localhost:*; object-src 'self';"
},
"externally_connectable": {
"matches": [
"*://*.lovense.com/cam-model/*",
"*://*.lovense.com/cam-model-v3/*",
"*://localhost/*"
]
},
"web_accessible_resources": [
{
"resources": [
"icons/*",
"img/*",
"js/*"
],
"matches": [
"<all_urls>"
]
}
],
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7zM8HealrzUCVVeJYzx5Vvz3VYwdWyfoQ5Vb7hP34PJvyJ9/5LnvzLoGHaUCjwSLHtT+IqFNkA6OUVhotpZzb4N1zaTq81QP0QnoOerHHQTqkiJyvtaVGiPhZlQ5dDhHoSLZJ1bNaltveGNG3CE2/yicohnJTlXmsh053trrQYVaR6HPJ5lICT37D7jsuMHayFjEsWTlZPLP6Wn80zrLEvpH93oA12UnWyQuPs5z/X5HhyrxzCmeJ4nZXtKuB6ICWU+dHSwzWm4N3l9qCxdvAjgsYwG64+34/i00E8eWgwISeOOVHV2p80UnOanQk7TBfiXJSBQgbosUbLZjmv7y6wIDAQAB"
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
Extension Background
</title>
<link rel="icon" href="/favicon.ico">
<style>
html,
body {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<iframe id="backgroundIframe" width="100%" height="100%" frameborder="0" scrolling="no" allow="bluetooth;hid;serial"></iframe>
<script src="/js/chrome_background.js"></script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
Extension Popup
</title>
<link rel="icon" href="/favicon.ico">
<style>
html,
body {
margin: 0;
padding: 0;
overflow: hidden;
}
body {
width: 400px;
height: 600px;
}
.popup-container {
width: 100%;
height: 100%;
}
.cam-page-loading {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
}
.loading-block {
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
display: flex;
justify-content: center;
align-items: center;
}
.loading-ball {
width: 20px;
height: 20px;
border-radius: 50%;
}
.loading-ball+.loading-ball {
margin-left: 20px;
}
.loading-ball:nth-child(1) {
background-color: #0a0258;
animation: leftBallLoad 1s infinite linear;
}
.loading-ball:nth-child(2) {
background-color: #ff2d89;
animation: rightBallLoad 1s infinite linear;
}
@keyframes leftBallLoad {
0% {
transform: translate3d(0, 0, 0) scale(1);
}
25% {
transform: translate3d(20px, 0, 0) scale(1.3);
}
50% {
transform: translate3d(40px, 0, 0) scale(1);
}
75% {
transform: translate3d(20px, 0, 0) scale(0.7);
}
100% {
transform: translate3d(0, 0, 0) scale(1);
}
}
@keyframes rightBallLoad {
0% {
transform: translate3d(0, 0, 0) scale(1);
}
25% {
transform: translate3d(-20px, 0, 0) scale(0.7);
}
50% {
transform: translate3d(-40px, 0, 0) scale(1);
}
75% {
transform: translate3d(-20px, 0, 0) scale(1.3);
}
100% {
transform: translate3d(0, 0, 0) scale(1);
}
}
</style>
</head>
<body>
<div class="popup-container">
<div class="cam-page-loading" id="camPageLoading">
<div class="loading-block">
<div class="loading-ball"></div>
<div class="loading-ball"></div>
</div>
</div>
</div>
<script src="/js/chrome_popup.js"></script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
Stream Master
</title>
<link rel="icon" href="/cam-model/favicon.ico">
<style>
body {
margin: 0;
overflow: hidden;
}
.cam-page-loading {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
}
.hidden-cam-page-loading {
display: none !important;
}
.loading-block {
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
display: flex;
justify-content: center;
align-items: center;
}
.loading-ball {
width: 20px;
height: 20px;
border-radius: 50%;
}
.loading-ball+.loading-ball {
margin-left: 20px;
}
.loading-ball:nth-child(1) {
background-color: #0a0258;
animation: leftBallLoad 1s infinite linear;
}
.loading-ball:nth-child(2) {
background-color: #ff2d89;
animation: rightBallLoad 1s infinite linear;
}
@keyframes leftBallLoad {
0% {
transform: translate3d(0, 0, 0) scale(1);
}
25% {
transform: translate3d(20px, 0, 0) scale(1.3);
}
50% {
transform: translate3d(40px, 0, 0) scale(1);
}
75% {
transform: translate3d(20px, 0, 0) scale(0.7);
}
100% {
transform: translate3d(0, 0, 0) scale(1);
}
}
@keyframes rightBallLoad {
0% {
transform: translate3d(0, 0, 0) scale(1);
}
25% {
transform: translate3d(-20px, 0, 0) scale(0.7);
}
50% {
transform: translate3d(-40px, 0, 0) scale(1);
}
75% {
transform: translate3d(-20px, 0, 0) scale(1.3);
}
100% {
transform: translate3d(0, 0, 0) scale(1);
}
}
</style>
</head>
<body>
<div id="app"></div>
<div class="cam-page-loading" id="camPageLoading">
<div class="loading-block">
<div class="loading-ball"></div>
<div class="loading-ball"></div>
</div>
</div>
<script src="/js/stream_master.js"></script>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment