added peertube component + moved content into tech-demos + disabled openbrush downloads when internal-storage is used
77
src/janusweb/index.html
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>JanusWeb</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="janusweb.css" media="all" />
|
||||||
|
<link rel="manifest" href="manifest.json">
|
||||||
|
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, maximum-scale=1.0, width=device-width" />
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="theme-color" content="#2f363b">
|
||||||
|
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:title" content="XRForge JanusWeb" />
|
||||||
|
<meta property="og:description" content="The World Within The Web" />
|
||||||
|
<meta property="og:image" content="https://janusxr.com/backgrounds/wallpapers/generic.png" />
|
||||||
|
|
||||||
|
|
||||||
|
<script src="janusweb.js"></script>
|
||||||
|
<script src="media/component/janus-script-peertube/translator.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<janus-viewer src="./index.html"></janus-viewer> <!-- project this document in 3D -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
<fireboxroom>
|
||||||
|
<assets></assets>
|
||||||
|
<room use_local_asset="room_plane" fwd="0 0 1">
|
||||||
|
<object js_id="links" rotation="0 180 0">
|
||||||
|
|
||||||
|
<link js_id="1" pos="3 0 10" xdir="-0.866027 0 0.499998" ydir="0 1 0" zdir="-0.499998 0 -0.866027" url="https://www.reddit.com/r/vrsites" col="#ffffff" scale="1.5 3 1" draw_glow="false" >
|
||||||
|
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
|
||||||
|
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
|
||||||
|
</paragraph>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link js_id="3" pos="5 0 8.5" xdir="-0.707109 0 0.707105" ydir="0 1 0" zdir="-0.707105 0 -0.707109" url="https://vesta.janusxr.org" col="#ffffff" scale="1.5 3 1" draw_glow="false">
|
||||||
|
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
|
||||||
|
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
|
||||||
|
</paragraph>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link js_id="2" pos="-3 0 10" xdir="-0.866024 0 -0.500002" ydir="0 1 0" zdir="0.500002 0 -0.866024" url="workspaces" col="#ffffff" scale="1.5 3 1" draw_glow="false">
|
||||||
|
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
|
||||||
|
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
|
||||||
|
</paragraph>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link js_id="4" pos="-5 0 8.5" xdir="-0.707106 0 -0.707108" ydir="0 1 0" zdir="0.707108 0 -0.707106" url="bookmarks" col="#ffffff" scale="1.5 3 1" draw_glow="false">
|
||||||
|
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
|
||||||
|
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
|
||||||
|
</paragraph>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link js_id="0" pos="0 0 10.8" xdir="-1 0 -0.000002" ydir="0 1 0" zdir="0.000002 0 -1" url="https://www.janusxr.org/newlobby/index.html" col="#ffffff" scale="1.5 3 1" draw_glow="false">
|
||||||
|
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
|
||||||
|
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
|
||||||
|
</paragraph>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link js_id="5" pos="-6.51 0 6.5" rotation="-180 65 -180" url="https://xrforge.isvery.ninja" col="#ffffff" scale="1.5 3 1" draw_glow="false">
|
||||||
|
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
|
||||||
|
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
|
||||||
|
</paragraph>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</room>
|
||||||
|
</fireboxroom>
|
||||||
|
|
||||||
|
-->
|
||||||
133
src/janusweb/media/assets.json
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
[
|
||||||
|
{ "assettype":"model", "name":"capsule", "src":"assets/primitives/capsule.obj" },
|
||||||
|
{ "assettype":"model", "name":"cone", "src":"assets/primitives/cone.obj" },
|
||||||
|
{ "assettype":"model", "name":"cube", "src":"assets/primitives/cube.obj" },
|
||||||
|
{ "assettype":"model", "name":"cylinder", "src":"assets/primitives/cylinder.obj" },
|
||||||
|
{ "assettype":"model", "name":"pipe", "src":"assets/primitives/pipe.obj" },
|
||||||
|
{ "assettype":"model", "name":"plane", "src":"assets/primitives/plane.obj" },
|
||||||
|
{ "assettype":"model", "name":"pyramid", "src":"assets/primitives/pyramid.obj" },
|
||||||
|
{ "assettype":"model", "name":"sphere", "src":"assets/primitives/sphere.obj" },
|
||||||
|
{ "assettype":"model", "name":"torus", "src":"assets/primitives/torus.obj" },
|
||||||
|
|
||||||
|
{ "assettype":"image", "name":"room1_tex0", "src":"assets/rooms/room1.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room2_tex0", "src":"assets/rooms/room2.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room3_tex0", "src":"assets/rooms/room3.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room4_tex0", "src":"assets/rooms/room4.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room5_tex0", "src":"assets/rooms/room5.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room6_tex0", "src":"assets/rooms/room6.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_1pedestal_tex0", "src":"assets/rooms/room_1pedestal.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_2pedestal_tex0", "src":"assets/rooms/room_2pedestal.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_3_narrow_tex0", "src":"assets/rooms/room_3_narrow.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_3_wide_tex0", "src":"assets/rooms/room_3_wide.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_4_narrow_tex0", "src":"assets/rooms/room_4_narrow.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_4_wide_tex0", "src":"assets/rooms/room_4_wide.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_box_small_tex0", "src":"assets/rooms/room_box_small.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_box_medium_tex0", "src":"assets/rooms/room_box_medium.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room1_new_tex0", "src":"assets/rooms/room1_new.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_home_tex0", "src":"assets/rooms/room_home.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_plane_tex0", "src":"assets/rooms/tile_d.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"room_plane2_tex0", "src":"assets/rooms/room_plane2.png", "hasalpha": false, "preload": false },
|
||||||
|
|
||||||
|
{ "assettype":"model", "name":"room1", "src":"assets/rooms/room1.obj", "tex0":"room1_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room2", "src":"assets/rooms/room2.obj", "tex0":"room2_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room3", "src":"assets/rooms/room3.obj", "tex0":"room3_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room4", "src":"assets/rooms/room4.obj", "tex0":"room4_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room5", "src":"assets/rooms/room5.obj", "tex0":"room5_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room6", "src":"assets/rooms/room6.obj", "tex0":"room6_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_1pedestal", "src":"assets/rooms/room_1pedestal.obj", "tex0":"room_1pedestal_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_2pedestal", "src":"assets/rooms/room_2pedestal.obj", "tex0":"room_2pedestal_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_3_narrow", "src":"assets/rooms/room_3_narrow.obj", "tex0":"room_3_narrow_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_3_wide", "src":"assets/rooms/room_3_wide.obj", "tex0":"room_3_wide_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_4_narrow", "src":"assets/rooms/room_4_narrow.obj", "tex0":"room_4_narrow_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_4_wide", "src":"assets/rooms/room_4_wide.obj", "tex0":"room_4_wide_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_box_small", "src":"assets/rooms/room_box_small.obj", "tex0":"room_box_small_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_box_medium", "src":"assets/rooms/room_box_medium.obj", "tex0":"room_box_medium_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room1_new", "src":"assets/rooms/room1_new.obj", "tex0":"room1_new_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_home", "src":"assets/rooms/room_home.obj", "tex0":"room_home_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_plane", "src":"assets/rooms/room_plane.obj", "tex0":"room_plane_tex0", "hasalpha": false },
|
||||||
|
{ "assettype":"model", "name":"room_plane2", "src":"assets/rooms/room_plane2.obj", "tex0":"room_plane2_tex0", "hasalpha": false },
|
||||||
|
|
||||||
|
{ "assettype":"model", "name":"room1_collision", "src":"assets/rooms/room1_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room2_collision", "src":"assets/rooms/room2_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room3_collision", "src":"assets/rooms/room3_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room4_collision", "src":"assets/rooms/room4_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room5_collision", "src":"assets/rooms/room5_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room6_collision", "src":"assets/rooms/room6_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_1pedestal_collision", "src":"assets/rooms/room_1pedestal_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_2pedestal_collision", "src":"assets/rooms/room_2pedestal_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_3_narrow_collision", "src":"assets/rooms/room_3_narrow_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_3_wide_collision", "src":"assets/rooms/room_3_wide_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_4_narrow_collision", "src":"assets/rooms/room_4_narrow_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_4_wide_collision", "src":"assets/rooms/room_4_wide_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_box_small_collision", "src":"assets/rooms/room_box_small_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_box_medium_collision", "src":"assets/rooms/room_box_medium_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room1_new_collision", "src":"assets/rooms/room1_new_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_home_collision", "src":"assets/rooms/room_home_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_plane_collision", "src":"assets/rooms/room_plane_collision.obj" },
|
||||||
|
{ "assettype":"model", "name":"room_plane2_collision", "src":"assets/rooms/room_plane2_collision.obj" },
|
||||||
|
|
||||||
|
{ "assettype":"image", "name":"black", "src":"assets/black.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"clear", "src":"assets/clear.png", "hasalpha": true, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dark_back", "src":"assets/skybox/dark_back.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dark_down", "src":"assets/skybox/dark_down.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dark_front", "src":"assets/skybox/dark_front.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dark_left", "src":"assets/skybox/dark_left.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dark_right", "src":"assets/skybox/dark_right.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dark_up", "src":"assets/skybox/dark_up.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"miramar_back", "src":"assets/skybox/miramar_back.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"miramar_down", "src":"assets/skybox/miramar_down.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"miramar_front", "src":"assets/skybox/miramar_front.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"miramar_left", "src":"assets/skybox/miramar_left.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"miramar_right", "src":"assets/skybox/miramar_right.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"miramar_up", "src":"assets/skybox/miramar_up.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"skyrender_back", "src":"assets/skybox/skyrender_back.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"skyrender_down", "src":"assets/skybox/skyrender_down.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"skyrender_front", "src":"assets/skybox/skyrender_front.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"skyrender_left", "src":"assets/skybox/skyrender_left.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"skyrender_right", "src":"assets/skybox/skyrender_right.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"skyrender_up", "src":"assets/skybox/skyrender_up.png", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dayskybox_back", "src":"assets/skybox/Day/Dayback.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dayskybox_down", "src":"assets/skybox/Day/Daybottom.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dayskybox_front", "src":"assets/skybox/Day/Dayfront.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dayskybox_left", "src":"assets/skybox/Day/Dayleft.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dayskybox_right", "src":"assets/skybox/Day/Dayright.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"dayskybox_up", "src":"assets/skybox/Day/Daytop.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"nightskybox_back", "src":"assets/skybox/Night/Nightback.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"nightskybox_down", "src":"assets/skybox/Night/Nightbottom.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"nightskybox_front", "src":"assets/skybox/Night/Nightfront.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"nightskybox_left", "src":"assets/skybox/Night/Nightleft.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"nightskybox_right", "src":"assets/skybox/Night/Nightright.jpg", "hasalpha": false, "preload": false },
|
||||||
|
{ "assettype":"image", "name":"nightskybox_up", "src":"assets/skybox/Night/Nighttop.jpg", "hasalpha": false, "preload": false },
|
||||||
|
|
||||||
|
{ "assettype":"model", "name":"avatar", "src":"assets/avatar.obj", "tex0": "avatar_tex0" },
|
||||||
|
{ "assettype":"model", "name":"avatar_head", "src":"assets/avatar_head.obj", "tex0": "avatar_head_tex0" },
|
||||||
|
{ "assettype":"model", "name":"avatar_gltf", "src":"assets/janus-avatar-base.glb" },
|
||||||
|
{ "assettype":"model", "name":"avatar_animations", "src":"assets/janus-avatar-animations.glb" },
|
||||||
|
|
||||||
|
{ "assettype":"image", "name":"avatar_tex0", "src":"assets/avatar.png", "preload": false },
|
||||||
|
{ "assettype":"image", "name":"avatar_head_tex0", "src":"assets/avatar_head.png", "preload": false },
|
||||||
|
|
||||||
|
{ "assettype":"model", "name":"avatar_janusweb", "src":"assets/hoverscreen.obj" },
|
||||||
|
|
||||||
|
{ "assettype":"model", "name":"loading", "src":"assets/loading.obj" },
|
||||||
|
|
||||||
|
{ "assettype":"image", "name":"cursor_arrow", "src":"assets/cursor/arrow.png", "hasalpha": true },
|
||||||
|
{ "assettype":"image", "name":"cursor_crosshair", "src":"assets/cursor/crosshair.png", "hasalpha": true },
|
||||||
|
{ "assettype":"image", "name":"cursor_hand", "src":"assets/cursor/hand.png", "hasalpha": true },
|
||||||
|
{ "assettype":"image", "name":"cursor_dot_inactive", "src":"assets/cursor/cursor-dot-white.png", "hasalpha": true },
|
||||||
|
{ "assettype":"image", "name":"cursor_dot_active", "src":"assets/cursor/cursor-dot-green.png", "hasalpha": true },
|
||||||
|
|
||||||
|
|
||||||
|
{ "assettype":"model", "name":"controller_daydream", "src":"assets/controllers/daydream/vr_controller_daydream.obj", "mtl":"vr_controller_daydream.mtl" },
|
||||||
|
{ "assettype":"model", "name":"controller_vive", "src":"assets/controllers/vive/ViveController.dae.gz" },
|
||||||
|
{ "assettype":"model", "name":"controller_touch_left", "src":"assets/controllers/oculus/TouchLeftModified.dae.gz" },
|
||||||
|
{ "assettype":"model", "name":"controller_touch_right", "src":"assets/controllers/oculus/TouchRight.dae.gz" },
|
||||||
|
{ "assettype":"font", "name":"helvetiker", "src":"assets/fonts/helvetiker_regular.typeface.json" },
|
||||||
|
{ "assettype":"shader", "name":"defaultportal", "shadertype":"shadertoy","fragment_src":"assets/shaders/greenportal2.shadertoy.frag", "preload":true },
|
||||||
|
|
||||||
|
{ "assettype":"model", "name":"button", "src":"component/janus-script-peertube/asset/button.glb", "preload":true},
|
||||||
|
{ "assettype":"model", "name":"icon", "src":"component/janus-script-peertube/asset/button.icon.glb", "preload":true},
|
||||||
|
{ "assettype":"sound", "name":"button-click", "src":"component/janus-script-peertube/asset/button.click.mp3", "preload":true},
|
||||||
|
{ "assettype":"sound", "name":"button-hover", "src":"component/janus-script-peertube/asset/button.hover.mp3", "preload":true}
|
||||||
|
|
||||||
|
]
|
||||||
104
src/janusweb/media/component/janus-script-peertube/translator.js
Normal file
|
|
@ -0,0 +1,104 @@
|
||||||
|
const PeertubeTranslatorBaseURL = document.currentScript.src.replace("/translator.js","")
|
||||||
|
|
||||||
|
elation.require([], function() {
|
||||||
|
elation.component.add('janusweb.translators.peertube', function() {
|
||||||
|
this.init = function() {
|
||||||
|
this.description = "peertube website to 3D translator"
|
||||||
|
}
|
||||||
|
this.exec = function(args) {
|
||||||
|
return new Promise(elation.bind(this, function(resolve, reject) {
|
||||||
|
|
||||||
|
var room = this.room = args.room;
|
||||||
|
|
||||||
|
reject() // for now
|
||||||
|
|
||||||
|
this.setupEvents()
|
||||||
|
var datapath = elation.config.get('janusweb.datapath', '/media/janusweb');
|
||||||
|
|
||||||
|
var roomdata = {
|
||||||
|
assets: {
|
||||||
|
assetlist: [
|
||||||
|
// {assettype: 'model', name: 'scene', src: args.url},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
room: {
|
||||||
|
pos: [0,0,0],
|
||||||
|
xdir: "1 0 0",
|
||||||
|
zdir: "0 0 1",
|
||||||
|
},
|
||||||
|
object: [
|
||||||
|
// {id: 'scene', js_id: 0, pos: "0 0 0", xdir: "-1 0 0", zdir: "0 0 -1", lighting: "false"}
|
||||||
|
],
|
||||||
|
link: []
|
||||||
|
};
|
||||||
|
resolve(roomdata);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
// translate XR Fragments microformat into JML
|
||||||
|
this.parseSource = async function(sourcecode, room){
|
||||||
|
this.room = room
|
||||||
|
const isJML = /<fireboxroom>[\s\S]*?<\/fireboxroom>/si;
|
||||||
|
const isPeertube = /<meta\s+[^>]*property=['"]og:platform['"]\s+[^>]*content=['"]peertube['"][^>]*\/?>/si;
|
||||||
|
const isPeertubeVideo = /<meta\s+[^>]*property=['"]og:type['"]\s+[^>]*content=['"]video['"][^>]*\/?>/si;
|
||||||
|
const isPeertubeInstance = /<meta\s+[^>]*property=['"]og:type['"]\s+[^>]*content=['"]website['"][^>]*\/?>/si;
|
||||||
|
const is = {
|
||||||
|
JML: sourcecode.match(isJML),
|
||||||
|
peertube: sourcecode.match(isPeertube),
|
||||||
|
peertubeVideo: sourcecode.match(isPeertubeVideo),
|
||||||
|
peertubeInstance: sourcecode.match(isPeertubeInstance),
|
||||||
|
}
|
||||||
|
if( is.JML || !is.peertube ) return // JML takes precedence over microformats
|
||||||
|
if( !is.peertubeVideo && !is.peertubeInstance ) return
|
||||||
|
|
||||||
|
// ok..peertube time: get domtree
|
||||||
|
let el = document.createElement("div")
|
||||||
|
el.innerHTML = sourcecode
|
||||||
|
|
||||||
|
// try to fetch title + cover
|
||||||
|
const title = el.querySelector("title")
|
||||||
|
let logo = el.querySelector("meta[property='og:image']")?.getAttribute("content")
|
||||||
|
logo = logo ? logo : el.querySelector("meta[property='og:image:url']")?.getAttribute("content")
|
||||||
|
|
||||||
|
let url = new URL( String(room.url) )
|
||||||
|
let instance = url?.origin
|
||||||
|
let search = url?.search ? new URLSearchParams(url.search).get("search") : ""
|
||||||
|
|
||||||
|
room.corsproxy = ''
|
||||||
|
// return JML
|
||||||
|
let parsed = room.parseSource(`
|
||||||
|
<title>${ title ? title.innerText.replace(/\n.*/g,'') : room.baseurl.split("/").pop() }</title>
|
||||||
|
<FireBoxRoom>
|
||||||
|
<Assets>
|
||||||
|
${ logo ? `<assetimage src="${logo}" id="logo"/>` : ''}
|
||||||
|
<assetscript src="${PeertubeTranslatorBaseURL}/janus-script-peertube.js" proxy="false"/>
|
||||||
|
</Assets>
|
||||||
|
<Room use_local_asset="room5" pos="1.15 0 -5">
|
||||||
|
${ is.peertubeInstance ? `<peertube-app pos="4.55 2.71 0" scale="2 2 1" rotation="0 90 0" js_id="mypeertube-app" instance="${instance}" ${search?`search="${search}"`:``} autoload="true"/>`
|
||||||
|
: `<peertube pos="4.55 2.71 0" scale="2 2 1" rotation="0 90 0" js_id="peertube" src="${room.url}" auto_play="true"/>`
|
||||||
|
}
|
||||||
|
<object position='12.2 0 0' rotation="0 -90 0">
|
||||||
|
${ logo ? `<image id="logo" pos='0 5 0' scale='3 3 2' lighting="false" />` : ''}
|
||||||
|
<text text="${room.url.replace(/.*:\/\//,'')}" pos='0 1.45 0' scale='7 7 7' lighting="false" col='#000000'/>
|
||||||
|
<text text="Peertube" pos='0 8.6 0' scale='4 4 4' lighting="false" col='#000000'/>
|
||||||
|
</object>
|
||||||
|
</Room>
|
||||||
|
</FireBoxRoom>
|
||||||
|
`)
|
||||||
|
return parsed
|
||||||
|
}
|
||||||
|
// peertube microformat heuristic: <meta property="og:platform" content="PeerTube">
|
||||||
|
this.parseSource.regex = /<meta\s+[^>]*property=['"]og:platform['"]\s+[^>]*content=['"]peertube['"][^>]*\/?>/si;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
elation.events.add(null, 'room_translator_register', function(e){
|
||||||
|
const room = e.element
|
||||||
|
const translators = e.data.translators
|
||||||
|
// prepend translator
|
||||||
|
e.data.translators = {}
|
||||||
|
e.data.translators['!peertube'] = elation.janusweb.translators.peertube({janus: janus})
|
||||||
|
for( let i in translators ){
|
||||||
|
e.data.translators[i] = translators[i]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 315 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
|
@ -2,7 +2,11 @@ local util = require('util')
|
||||||
local apiSync = require('apiSync')
|
local apiSync = require('apiSync')
|
||||||
|
|
||||||
app.on('init', function()
|
app.on('init', function()
|
||||||
|
if not app.opts.plugin_diskscan_dir:match("^/zip/") then
|
||||||
app.plugin.openbrush.api = apiSync.init( 'openbrush' )
|
app.plugin.openbrush.api = apiSync.init( 'openbrush' )
|
||||||
|
else
|
||||||
|
print("[openbrush.lua] disabled..please create a 'myverse' dir we can store files into")
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local function scanTiltFile(exp)
|
local function scanTiltFile(exp)
|
||||||
|
|
@ -116,7 +120,7 @@ local plugin = {
|
||||||
key='app.opts.plugin_openbrush_sync_folder',
|
key='app.opts.plugin_openbrush_sync_folder',
|
||||||
title='Sync to folder',
|
title='Sync to folder',
|
||||||
info='openbrush (icosa.gallery) assets will be saved here',
|
info='openbrush (icosa.gallery) assets will be saved here',
|
||||||
default = "./myverse/tronverse",
|
default = "./myverse/tech-demos/tronverse",
|
||||||
type = "dir",
|
type = "dir",
|
||||||
values = {} -- populated by plugin/diskscan.lua
|
values = {} -- populated by plugin/diskscan.lua
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ OUTDIR=result/bin
|
||||||
REDBEAN_URL="https://redbean.dev/redbean-3.0.0.com"
|
REDBEAN_URL="https://redbean.dev/redbean-3.0.0.com"
|
||||||
REDBEAN_CRC="382f1288bb96ace4bab5145e7df236846c33cc4f1be69233710682a9e71e7467 $OUTDIR/xrforge.com"
|
REDBEAN_CRC="382f1288bb96ace4bab5145e7df236846c33cc4f1be69233710682a9e71e7467 $OUTDIR/xrforge.com"
|
||||||
|
|
||||||
download(){
|
get(){
|
||||||
|
|
||||||
redbean(){
|
redbean(){
|
||||||
test -d $OUTDIR || mkdir -p $OUTDIR
|
test -d $OUTDIR || mkdir -p $OUTDIR
|
||||||
|
|
@ -32,18 +32,20 @@ download(){
|
||||||
|
|
||||||
janusweb(){
|
janusweb(){
|
||||||
set -x
|
set -x
|
||||||
test -d janusweb || {
|
test -d pkg/janusweb || {
|
||||||
version=1.7.5
|
mkdir pkg &>/dev/null || true
|
||||||
test -f janusweb-${version}.tar.gz || {
|
test -f janusweb-${version}.tar.gz || {
|
||||||
wget "https://github.com/coderofsalvation/janusweb/releases/download/v${version}-rc/janusweb-${version}.tar.gz"
|
wget "https://github.com/coderofsalvation/janusweb/releases/download/v${version}-rc/janusweb-${version}.tar.gz"
|
||||||
}
|
}
|
||||||
test -d janusweb-${version} || tar -xvf janusweb-${version}.tar.gz
|
test -d janusweb-${version} || tar -xvf janusweb-${version}.tar.gz
|
||||||
mv janusweb-${version} janusweb
|
mv janusweb-${version} pkg/janusweb
|
||||||
}
|
}
|
||||||
set -x
|
set -x
|
||||||
rsync -avL janusweb src/.
|
rsync -avLu pkg/janusweb src/. # overlay but leave newer files intact
|
||||||
# cleanup
|
# cleanup
|
||||||
rm src/janusweb/janusxr.com || true
|
rm src/janusweb/janusxr.com || true
|
||||||
|
rm src/janusweb/test || true
|
||||||
|
rm src/janusweb/media/test || true
|
||||||
# set xrforge as defualt config
|
# set xrforge as defualt config
|
||||||
cp src/janusweb/media/assets/webui/{xrforge,default}.json
|
cp src/janusweb/media/assets/webui/{xrforge,default}.json
|
||||||
}
|
}
|
||||||
|
|
@ -52,11 +54,12 @@ download(){
|
||||||
}
|
}
|
||||||
|
|
||||||
build(){
|
build(){
|
||||||
download redbean
|
get redbean
|
||||||
download janusweb
|
get janusweb
|
||||||
cd src
|
cd src
|
||||||
bundle(){ zip -yr $1 * .lua .init.lua .args; }
|
bundle(){ zip -yr $1 * .lua .init.lua .args; }
|
||||||
bundle ../result/bin/xrforge.com
|
bundle ../result/bin/xrforge.com
|
||||||
|
unzip -l ../result/bin/xrforge.com
|
||||||
test -n "$ARCH" && bundle ../result/bin/xrforge-$ARCH.com
|
test -n "$ARCH" && bundle ../result/bin/xrforge-$ARCH.com
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||