Merge branch 'kasen/core' into fix/whitelist-qml-adds

This commit is contained in:
Kasen IO 2020-01-24 19:53:33 -05:00
commit b0849a5ed9
10 changed files with 135 additions and 81 deletions

View file

@ -14,80 +14,77 @@ sudo add-apt-repository universe
sudo apt-get update sudo apt-get update
``` ```
#### Install build tools: #### Install build tools:
1. First update the repositiories: - First update the repositiories:
```bash ```bash
sudo apt-get update -y sudo apt-get update -y
sudo apt-get upgrade -y sudo apt-get upgrade -y
``` ```
1. git - git
```bash ```bash
sudo apt-get install git -y sudo apt-get install git -y
``` ```
Verify by git --version Verify by git --version
1. g++ - g++
```bash ```bash
sudo apt-get install g++ -y sudo apt-get install g++ -y
``` ```
Verify by g++ --version Verify by g++ --version
1. *Ubuntu 18.04* cmake - *Ubuntu 18.04* cmake
```bash ```bash
sudo apt-get install cmake -y sudo apt-get install cmake -y
``` ```
Verify by cmake --version Verify by cmake --version
1. *Ubuntu 16.04* cmake - *Ubuntu 16.04* cmake
```bash ```bash
wget https://cmake.org/files/v3.14/cmake-3.14.2-Linux-x86_64.sh wget https://cmake.org/files/v3.14/cmake-3.14.2-Linux-x86_64.sh
sudo sh cmake-3.14.2-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir sudo sh cmake-3.14.2-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir
``` ```
#### Install build dependencies: #### Install build dependencies:
1. OpenSSL - OpenSSL:
```bash ```bash
sudo apt-get install libssl-dev sudo apt-get install libssl-dev
``` ```
Verify with `openssl version` Verify with `openssl version`
1. OpenGL - OpenGL:
Verify (first install mesa-utils - `sudo apt install mesa-utils -y`) by `glxinfo | grep "OpenGL version"`
```bash ```bash
sudo apt-get install libgl1-mesa-dev -y sudo apt-get install libgl1-mesa-dev -y
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0 sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
``` ```
- Verify OpenGL:
- First install mesa-utils with the command `sudo apt install mesa-utils -y`
- Then run `glxinfo | grep "OpenGL version"`
#### To compile interface in a server you must install: #### To compile interface in a server you must install:
```bash ```bash
sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1 sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1
``` ```
1. Misc dependencies - Misc dependencies:
```bash ```bash
sudo apt-get install libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack0 libjack-dev libxrandr-dev libudev-dev libssl-dev zlib1g-dev sudo apt-get install libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack0 libjack-dev libxrandr-dev libudev-dev libssl-dev zlib1g-dev
``` ```
1. To compile interface in a server you must install: - Install Python 3 and required packages:
```bash ```bash
sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1 sudo apt-get install python python3 python3-distro
``` ```
1. Install Python 3 and required packages - Install node, required to build the jsdoc documentation:
```bash
sudo apt-get install python3 python3-distro
```
1. Install node, required to build the jsdoc documentation
```bash ```bash
sudo apt-get install nodejs sudo apt-get install nodejs
``` ```
### Get code and checkout the tag you need ### Get code and checkout the branch you need
Clone this repository: Clone this repository:
```bash ```bash
git clone https://github.com/kasenvr/project-athena.git git clone https://github.com/kasenvr/project-athena.git
``` ```
To compile a RELEASE version checkout the tag you need getting a list of all tags: To compile a DEV version checkout the branch you need. To get a list of all tags:
```bash ```bash
git fetch -a git fetch -a
git tag
``` ```
Then checkout last tag with: Then checkout the main branch with:
```bash ```bash
git checkout tag/1.0 git checkout kasen/core
``` ```
### Compiling ### Compiling
@ -104,7 +101,7 @@ Prepare makefiles:
cmake .. cmake ..
``` ```
* If cmake fails with a vcpkg error - delete /tmp/hifi/vcpkg. - If cmake fails with a vcpkg error - delete /tmp/hifi/vcpkg.
Start compilation of the server and get a cup of coffee: Start compilation of the server and get a cup of coffee:
```bash ```bash
@ -116,7 +113,15 @@ To compile interface:
make interface make interface
``` ```
In a server, it does not make sense to compile interface The commands above will compile with a single thread. If you have enough memory,
you can decrease your build time using the `-j` flag. Since most x64 CPUs
support two threads per core, this works out to CPU_COUNT*2. As an example, if
you have a 2 core machine, you could use:
```
make -j4 interface
```
In a server, it does not make sense to compile interface.
### Running the software ### Running the software
@ -143,6 +148,13 @@ Running interface:
Go to localhost in the running interface. Go to localhost in the running interface.
#### Notes
If your goal is to set up a development environment, it is desirable to set the
directory that vcpkg builds into with the `HIFI_VCPKG_BASE` environment variable.
For example, you might set `HIFI_VCPKG_BASE` to `/home/$USER/vcpkg`.
By default, vcpkg will build in the system `/tmp` directory.
##### Ubuntu 18.04 only ##### Ubuntu 18.04 only
In Ubuntu 18.04 there is a problem related with NVidia driver library version. In Ubuntu 18.04 there is a problem related with NVidia driver library version.

View file

@ -1,9 +1,5 @@
# Project Athena # Project Athena
### [Download ALPHA-DEV v0.86.0 K1 (Windows 64-bit, .zip)](https://realities.dev/cdn/hifi-community/v0860-kasen-VS-release+freshstart/Packaged_Release.zip)
This build has been tested on Windows 10 Pro 64-bit w/ Nvidia graphics drivers.
#### v0.86.0 K1 (12/3/19) #### v0.86.0 K1 (12/3/19)
* Audio Buffer choppy audio bugfix by increasing the buffer size. * Audio Buffer choppy audio bugfix by increasing the buffer size.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View file

@ -18,20 +18,20 @@ macro(GENERATE_INSTALLERS)
if (CLIENT_ONLY) if (CLIENT_ONLY)
set(_PACKAGE_NAME_EXTRA "-Interface") set(_PACKAGE_NAME_EXTRA "-Interface")
set(INSTALLER_TYPE "client_only") set(INSTALLER_TYPE "client_only")
string(REGEX REPLACE "High Fidelity" "High Fidelity Interface" _DISPLAY_NAME ${BUILD_ORGANIZATION}) string(REGEX REPLACE "Project Athena" "Project Athena Interface" _DISPLAY_NAME ${BUILD_ORGANIZATION})
elseif (SERVER_ONLY) elseif (SERVER_ONLY)
set(_PACKAGE_NAME_EXTRA "-Sandbox") set(_PACKAGE_NAME_EXTRA "-Sandbox")
set(INSTALLER_TYPE "server_only") set(INSTALLER_TYPE "server_only")
string(REGEX REPLACE "High Fidelity" "High Fidelity Sandbox" _DISPLAY_NAME ${BUILD_ORGANIZATION}) string(REGEX REPLACE "Project Athena" "Project Athena Sandbox" _DISPLAY_NAME ${BUILD_ORGANIZATION})
else () else ()
set(_DISPLAY_NAME ${BUILD_ORGANIZATION}) set(_DISPLAY_NAME ${BUILD_ORGANIZATION})
set(INSTALLER_TYPE "full") set(INSTALLER_TYPE "full")
endif () endif ()
set(CPACK_PACKAGE_NAME ${_DISPLAY_NAME}) set(CPACK_PACKAGE_NAME ${_DISPLAY_NAME})
set(CPACK_PACKAGE_VENDOR "High Fidelity") set(CPACK_PACKAGE_VENDOR "Project Athena")
set(CPACK_PACKAGE_VERSION ${BUILD_VERSION}) set(CPACK_PACKAGE_VERSION ${BUILD_VERSION})
set(CPACK_PACKAGE_FILE_NAME "HighFidelity-Beta${_PACKAGE_NAME_EXTRA}-${BUILD_VERSION}") set(CPACK_PACKAGE_FILE_NAME "ProjectAthena-Alpha${_PACKAGE_NAME_EXTRA}-${BUILD_VERSION}")
set(CPACK_NSIS_DISPLAY_NAME ${_DISPLAY_NAME}) set(CPACK_NSIS_DISPLAY_NAME ${_DISPLAY_NAME})
set(CPACK_NSIS_PACKAGE_NAME ${_DISPLAY_NAME}) set(CPACK_NSIS_PACKAGE_NAME ${_DISPLAY_NAME})
if (PR_BUILD) if (PR_BUILD)
@ -118,11 +118,11 @@ macro(GENERATE_INSTALLERS)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
if (BUILD_CLIENT) if (BUILD_CLIENT)
cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "High Fidelity Interface") cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "Project Athena Interface")
endif () endif ()
if (BUILD_SERVER) if (BUILD_SERVER)
cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "High Fidelity Sandbox") cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "Project Athena Sandbox")
endif () endif ()
include(CPack) include(CPack)

View file

@ -35,7 +35,7 @@ macro(SET_PACKAGING_PARAMETERS)
set(DEPLOY_PACKAGE TRUE) set(DEPLOY_PACKAGE TRUE)
set(PRODUCTION_BUILD 1) set(PRODUCTION_BUILD 1)
set(BUILD_VERSION ${RELEASE_NUMBER}) set(BUILD_VERSION ${RELEASE_NUMBER})
set(BUILD_ORGANIZATION "High Fidelity") set(BUILD_ORGANIZATION "Project Athena")
set(HIGH_FIDELITY_PROTOCOL "hifi") set(HIGH_FIDELITY_PROTOCOL "hifi")
set(HIGH_FIDELITY_APP_PROTOCOL "hifiapp") set(HIGH_FIDELITY_APP_PROTOCOL "hifiapp")
set(INTERFACE_BUNDLE_NAME "interface") set(INTERFACE_BUNDLE_NAME "interface")
@ -60,7 +60,7 @@ macro(SET_PACKAGING_PARAMETERS)
set(DEPLOY_PACKAGE TRUE) set(DEPLOY_PACKAGE TRUE)
set(PR_BUILD 1) set(PR_BUILD 1)
set(BUILD_VERSION "PR${RELEASE_NUMBER}") set(BUILD_VERSION "PR${RELEASE_NUMBER}")
set(BUILD_ORGANIZATION "High Fidelity - PR${RELEASE_NUMBER}") set(BUILD_ORGANIZATION "Project Athena - PR${RELEASE_NUMBER}")
set(INTERFACE_BUNDLE_NAME "interface") set(INTERFACE_BUNDLE_NAME "interface")
set(INTERFACE_ICON_PREFIX "interface-beta") set(INTERFACE_ICON_PREFIX "interface-beta")
@ -69,7 +69,7 @@ macro(SET_PACKAGING_PARAMETERS)
else () else ()
set(DEV_BUILD 1) set(DEV_BUILD 1)
set(BUILD_VERSION "dev") set(BUILD_VERSION "dev")
set(BUILD_ORGANIZATION "High Fidelity - ${BUILD_VERSION}") set(BUILD_ORGANIZATION "Project Athena - ${BUILD_VERSION}")
set(INTERFACE_BUNDLE_NAME "interface") set(INTERFACE_BUNDLE_NAME "interface")
set(INTERFACE_ICON_PREFIX "interface-beta") set(INTERFACE_ICON_PREFIX "interface-beta")
@ -192,21 +192,21 @@ macro(SET_PACKAGING_PARAMETERS)
# shortcut names # shortcut names
if (PRODUCTION_BUILD) if (PRODUCTION_BUILD)
set(INTERFACE_SHORTCUT_NAME "High Fidelity") set(INTERFACE_SHORTCUT_NAME "Project Athena")
set(CONSOLE_SHORTCUT_NAME "Console") set(CONSOLE_SHORTCUT_NAME "Console")
set(SANDBOX_SHORTCUT_NAME "Sandbox") set(SANDBOX_SHORTCUT_NAME "Sandbox")
set(APP_USER_MODEL_ID "com.highfidelity.console") set(APP_USER_MODEL_ID "com.highfidelity.console")
else () else ()
set(INTERFACE_SHORTCUT_NAME "High Fidelity - ${BUILD_VERSION_NO_SHA}") set(INTERFACE_SHORTCUT_NAME "Project Athena - ${BUILD_VERSION_NO_SHA}")
set(CONSOLE_SHORTCUT_NAME "Console - ${BUILD_VERSION_NO_SHA}") set(CONSOLE_SHORTCUT_NAME "Console - ${BUILD_VERSION_NO_SHA}")
set(SANDBOX_SHORTCUT_NAME "Sandbox - ${BUILD_VERSION_NO_SHA}") set(SANDBOX_SHORTCUT_NAME "Sandbox - ${BUILD_VERSION_NO_SHA}")
endif () endif ()
set(INTERFACE_HF_SHORTCUT_NAME "${INTERFACE_SHORTCUT_NAME}") set(INTERFACE_HF_SHORTCUT_NAME "${INTERFACE_SHORTCUT_NAME}")
set(CONSOLE_HF_SHORTCUT_NAME "High Fidelity ${CONSOLE_SHORTCUT_NAME}") set(CONSOLE_HF_SHORTCUT_NAME "Project Athena ${CONSOLE_SHORTCUT_NAME}")
set(SANDBOX_HF_SHORTCUT_NAME "High Fidelity ${SANDBOX_SHORTCUT_NAME}") set(SANDBOX_HF_SHORTCUT_NAME "Project Athena ${SANDBOX_SHORTCUT_NAME}")
set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "High Fidelity") set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "Project Athena")
set(PRE_SANDBOX_CONSOLE_SHORTCUT_NAME "Server Console") set(PRE_SANDBOX_CONSOLE_SHORTCUT_NAME "Server Console")
# check if we need to find signtool # check if we need to find signtool

View file

@ -161,7 +161,7 @@
;General ;General
; hide install details since we show an image slideshow in their place ; hide install details since we show an image slideshow in their place
ShowInstDetails nevershow ShowInstDetails hide
; leverage the UAC NSIS plugin to promote uninstaller to elevated privileges ; leverage the UAC NSIS plugin to promote uninstaller to elevated privileges
!include UAC.nsh !include UAC.nsh
@ -199,15 +199,18 @@
!system "$%TEMP%\tempinstaller.exe" = 2 !system "$%TEMP%\tempinstaller.exe" = 2
; NOTE: We're not code signing right now, so we're going to disable that.
; TODO: Get a code signing certificate so we can re-enable code signing.
; The Inner invocation has written an uninstaller binary for us. ; The Inner invocation has written an uninstaller binary for us.
; We need to sign it if it's a production or PR build. ; We need to sign it if it's a production or PR build.
!if @PRODUCTION_BUILD@ == 1 ; !if @PRODUCTION_BUILD@ == 1
!if @BYPASS_SIGNING@ == 1 ; !if @BYPASS_SIGNING@ == 1
!warning "BYPASS_SIGNING set - installer will not be signed" ; !warning "BYPASS_SIGNING set - installer will not be signed"
!else ; !else
!system '"@SIGNTOOL_EXECUTABLE@" sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td SHA256 $%TEMP%\@UNINSTALLER_NAME@' = 0 ; !system '"@SIGNTOOL_EXECUTABLE@" sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td SHA256 $%TEMP%\@UNINSTALLER_NAME@' = 0
!endif ; !endif
!endif ; !endif
; Good. Now we can carry on writing the real installer. ; Good. Now we can carry on writing the real installer.
@ -421,7 +424,7 @@ Function GetCampaignName
Pop $0 ; Discard Path Pop $0 ; Discard Path
Pop $0 ; Recover filename Pop $0 ; Recover filename
; Parse campaign out of the filename ; Parse campaign out of the filename
${RECaptureMatches} $0 "HighFidelity-([^-]*-)Beta-.*" $0 0 ${RECaptureMatches} $0 "ProjectAthena-([^-]*-)Alpha-.*" $0 0
${If} $0 == 1 ${If} $0 == 1
Pop $0 ; Recover campaign name Pop $0 ; Recover campaign name
StrCpy $0 $0 -1 0 ; Remove trailing - and copy to _RetVar StrCpy $0 $0 -1 0 ; Remove trailing - and copy to _RetVar
@ -528,7 +531,7 @@ Var GAClientID
Page custom PostInstallOptionsPage ReadPostInstallOptions Page custom PostInstallOptionsPage ReadPostInstallOptions
!define MUI_PAGE_CUSTOMFUNCTION_PRE PageInstallFilesPre !define MUI_PAGE_CUSTOMFUNCTION_PRE PageInstallFilesPre
!define MUI_PAGE_CUSTOMFUNCTION_SHOW StartInstallSlideshow ; !define MUI_PAGE_CUSTOMFUNCTION_SHOW StartInstallSlideshow
!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_CONFIRM
@ -652,35 +655,35 @@ Var Express
Function OnUserAbort Function OnUserAbort
!insertmacro LogStep "Installer" "Abort" "User Abort" "" !insertmacro LogStep "Installer" "Abort" "User Abort" ""
!insertmacro GoogleAnalytics "Installer" "Abort" "User Abort" "" ; !insertmacro GoogleAnalytics "Installer" "Abort" "User Abort" ""
FunctionEnd FunctionEnd
Function PageWelcomePre Function PageWelcomePre
!insertmacro LogStep "Installer" "Welcome" "" "" !insertmacro LogStep "Installer" "Welcome" "" ""
!insertmacro GoogleAnalytics "Installer" "Welcome" "" "" ; !insertmacro GoogleAnalytics "Installer" "Welcome" "" ""
!insertmacro DownloadSlideshowImages ; !insertmacro DownloadSlideshowImages
FunctionEnd FunctionEnd
Function PageLicensePre Function PageLicensePre
!insertmacro LogStep "Installer" "License" "" "" !insertmacro LogStep "Installer" "License" "" ""
!insertmacro GoogleAnalytics "Installer" "License" "" "" ; !insertmacro GoogleAnalytics "Installer" "License" "" ""
FunctionEnd FunctionEnd
Function PageDirectoryPre Function PageDirectoryPre
!insertmacro MaybeSkipPage !insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "Directory" "" "" !insertmacro LogStep "Installer" "Directory" "" ""
!insertmacro GoogleAnalytics "Installer" "Directory" "" "" ; !insertmacro GoogleAnalytics "Installer" "Directory" "" ""
FunctionEnd FunctionEnd
Function PageStartMenuPre Function PageStartMenuPre
!insertmacro MaybeSkipPage !insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "StartMenu" "" "" !insertmacro LogStep "Installer" "StartMenu" "" ""
!insertmacro GoogleAnalytics "Installer" "StartMenu" "" "" ; !insertmacro GoogleAnalytics "Installer" "StartMenu" "" ""
FunctionEnd FunctionEnd
Function PageComponentsPre Function PageComponentsPre
!insertmacro MaybeSkipPage !insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "Components" "" "" !insertmacro LogStep "Installer" "Components" "" ""
!insertmacro GoogleAnalytics "Installer" "Components" "" "" ; !insertmacro GoogleAnalytics "Installer" "Components" "" ""
FunctionEnd FunctionEnd
Function PageInstallFilesPre Function PageInstallFilesPre
!insertmacro LogStep "Installer" "Install" "" "" !insertmacro LogStep "Installer" "Install" "" ""
!insertmacro GoogleAnalytics "Installer" "Install" "" "" ; !insertmacro GoogleAnalytics "Installer" "Install" "" ""
FunctionEnd FunctionEnd
!macro SetInstallOption Checkbox OptionName Default !macro SetInstallOption Checkbox OptionName Default
@ -702,7 +705,7 @@ FunctionEnd
Function InstallTypesPage Function InstallTypesPage
!insertmacro LogStep "Installer" "Install Types" "" "" !insertmacro LogStep "Installer" "Install Types" "" ""
!insertmacro GoogleAnalytics "Installer" "Install Types" "" "" ; !insertmacro GoogleAnalytics "Installer" "Install Types" "" ""
!insertmacro MUI_HEADER_TEXT "Choose Installation Type" "Express or Custom Install" !insertmacro MUI_HEADER_TEXT "Choose Installation Type" "Express or Custom Install"
@ -717,7 +720,7 @@ Function InstallTypesPage
StrCpy $OffsetUnits u StrCpy $OffsetUnits u
StrCpy $Express "0" StrCpy $Express "0"
${NSD_CreateRadioButton} 30% $CurrentOffset$OffsetUnits 100% 10u "Express Install (Recommended)"; $\nInstalls High Fidelity Interface and High Fidelity Sandbox" ${NSD_CreateRadioButton} 30% $CurrentOffset$OffsetUnits 100% 10u "Express Install (Recommended)"; $\nInstalls Project Athena Interface and Project Athena Sandbox"
pop $ExpressInstallRadioButton pop $ExpressInstallRadioButton
${NSD_OnClick} $ExpressInstallRadioButton ChangeExpressLabel ${NSD_OnClick} $ExpressInstallRadioButton ChangeExpressLabel
IntOp $CurrentOffset $CurrentOffset + 15 IntOp $CurrentOffset $CurrentOffset + 15
@ -813,7 +816,7 @@ Function PostInstallOptionsPage
!insertmacro MaybeSkipPage !insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "Post Install Options" "" "" !insertmacro LogStep "Installer" "Post Install Options" "" ""
!insertmacro GoogleAnalytics "Installer" "Post Install Options" "" "" ; !insertmacro GoogleAnalytics "Installer" "Post Install Options" "" ""
!insertmacro MUI_HEADER_TEXT "Setup Options" "" !insertmacro MUI_HEADER_TEXT "Setup Options" ""
@ -970,7 +973,7 @@ Function ReadPostInstallOptions
${If} @CLIENT_COMPONENT_CONDITIONAL@ ${If} @CLIENT_COMPONENT_CONDITIONAL@
${LogText} "Option: Install Client" ${LogText} "Option: Install Client"
; check if the user asked for a desktop shortcut to High Fidelity ; check if the user asked for a desktop shortcut to Project Athena
${NSD_GetState} $DesktopClientCheckbox $DesktopClientState ${NSD_GetState} $DesktopClientCheckbox $DesktopClientState
${LogText} "Option: Create Client Desktop Shortcut: $DesktopClientState" ${LogText} "Option: Create Client Desktop Shortcut: $DesktopClientState"
${EndIf} ${EndIf}
@ -1024,7 +1027,7 @@ Function HandlePostInstallOptions
${EndIf} ${EndIf}
${If} @CLIENT_COMPONENT_CONDITIONAL@ ${If} @CLIENT_COMPONENT_CONDITIONAL@
; check if the user asked for a desktop shortcut to High Fidelity ; check if the user asked for a desktop shortcut to Project Athena
${If} $DesktopClientState == ${BST_CHECKED} ${If} $DesktopClientState == ${BST_CHECKED}
CreateShortCut "$DESKTOP\@INTERFACE_HF_SHORTCUT_NAME@.lnk" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@" CreateShortCut "$DESKTOP\@INTERFACE_HF_SHORTCUT_NAME@.lnk" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@"
!insertmacro WriteInstallOption "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" YES !insertmacro WriteInstallOption "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" YES
@ -1085,7 +1088,7 @@ Function HandlePostInstallOptions
ClearErrors ClearErrors
; copy the data from production build to this PR build ; copy the data from production build to this PR build
CopyFiles "$APPDATA\High Fidelity\*" $0 CopyFiles "$APPDATA\Project Athena\*" $0
; handle an error in copying files ; handle an error in copying files
IfErrors 0 NoError IfErrors 0 NoError
@ -1325,13 +1328,13 @@ Section "-Core installation"
@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
; see if we have a campaign that we might need to grab special content for ; see if we have a campaign that we might need to grab special content for
Call OptionallyDownloadCampaignServerless ; Call OptionallyDownloadCampaignServerless
; Handle whichever post install options were set ; Handle whichever post install options were set
Call HandlePostInstallOptions Call HandlePostInstallOptions
!insertmacro LogStep "Installer" "Done" "" "" !insertmacro LogStep "Installer" "Done" "" ""
!insertmacro GoogleAnalytics "Installer" "Done" "" "" ; !insertmacro GoogleAnalytics "Installer" "Done" "" ""
SectionEnd SectionEnd
!include nsProcess.nsh !include nsProcess.nsh
@ -1358,7 +1361,7 @@ SectionEnd
/SD IDCANCEL IDRETRY Prompt_${UniqueID} IDCANCEL 0 /SD IDCANCEL IDRETRY Prompt_${UniqueID} IDCANCEL 0
${EndIf} ${EndIf}
!insertmacro GoogleAnalytics "Installer" "Abort" "${displayName} Running" "" ; !insertmacro GoogleAnalytics "Installer" "Abort" "${displayName} Running" ""
; If the user decided to cancel, stop the current installer/uninstaller ; If the user decided to cancel, stop the current installer/uninstaller
Abort Abort
@ -1602,7 +1605,7 @@ Function .onInit
!insertmacro InitGAClientID !insertmacro InitGAClientID
!insertmacro GetCampaignName $CampaignName !insertmacro GetCampaignName $CampaignName
!insertmacro GoogleAnalytics "Installer" "Start" "$CampaignName" "" ; !insertmacro GoogleAnalytics "Installer" "Start" "$CampaignName" ""
; make sure none of the installed applications are still running ; make sure none of the installed applications are still running
${LogText} "Checking For Running Applications" ${LogText} "Checking For Running Applications"

View file

@ -52,6 +52,21 @@
var $ChatLog; // The scrolling chat log. var $ChatLog; // The scrolling chat log.
var $ChatInputText; // The text field for entering text. var $ChatInputText; // The text field for entering text.
var userName; var userName;
var urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;,:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+,~%\/\.\w\-]*)?\??(?:[\-\+=&;,:%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g;
function reverseMatches(msg) {
var result = [];
var matches = msg.match(urlRegEx);
if (matches === null) {
matches = [];
}
for (var i = 0; i <= matches.length; i++) {
var split = msg.split(matches[i], 2);
result.push(split[0]);
msg = split[1];
}
return result;
}
//Start George Function //Start George Function
//Function provided by George Deac //Function provided by George Deac
@ -62,11 +77,30 @@
$.fn.linky = function (options) { $.fn.linky = function (options) {
return this.each(function () { return this.each(function () {
var $el = $(this), var $el = $(this);
linkifiedContent = _linkify($el, options); var content = $el.html();
var formattedContent = replaceFormatting(linkifiedContent);
$el.html(formattedContent); var match = content.match(urlRegEx);
var matchLength = match === null ? 0 : match.length;
var messageParts = reverseMatches(content);
var messageFormatted = [];
var urlLinkified = [];
var completeMessage = [];
for (var i = 0; i < matchLength; i++) {
urlLinkified.push(_linkify(match[i], options));
}
for (var i = 0; i < messageParts.length; i++) {
messageFormatted.push(replaceFormatting(messageParts[i]));
}
for (var i = 0; i < messageFormatted.length; i++) {
completeMessage.push(messageFormatted[i], urlLinkified[i]);
}
$el.html(completeMessage.join(""));
}); });
}; };
@ -92,9 +126,8 @@
linkTo: "twitter" // Let's default to Twitter linkTo: "twitter" // Let's default to Twitter
}, },
extendedOptions = $.extend(defaultOptions, options), extendedOptions = $.extend(defaultOptions, options),
elContent = $el.html(), elContent = $el,
// Regular expression courtesy of Matthew O'Riordan, see: http://goo.gl/3syEKK // Regular expression courtesy of Matthew O'Riordan, see: http://goo.gl/3syEKK
urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;,:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+,~%\/\.\w\-]*)?\??(?:[\-\+=&;,:%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g,
matches; matches;
// Linkifying URLs // Linkifying URLs
@ -121,7 +154,7 @@
// For any URLs present, unless they are already identified within // For any URLs present, unless they are already identified within
// an `a` element, linkify them. // an `a` element, linkify them.
function _linkifyUrls(matches, $el) { function _linkifyUrls(matches, $el) {
var elContent = $el.html(); var elContent = $el;
$.each(matches, function () { $.each(matches, function () {

View file

@ -112,10 +112,15 @@ function connectWebSocket(timeout) {
console.log('disconnected'); console.log('disconnected');
timeout = timeout | 0; timeout = timeout | 0;
if (!shutdownBool && timeout < (30 * 1000)) { if (!shutdownBool) {
if (timeout > (30 * 1000)) {
timeout = 30 * 1000;
} else if (timeout < (30 * 1000)) {
timeout += 1000;
}
Script.setTimeout(function () { Script.setTimeout(function () {
connectWebSocket(timeout); connectWebSocket(timeout);
}, timeout + 1000); }, timeout);
} else { } else {
wsReady = -1; wsReady = -1;
} }
@ -128,13 +133,18 @@ function sendWS(msg, timeout) {
ws.send(JSON.stringify(msg)); ws.send(JSON.stringify(msg));
} else { } else {
timeout = timeout | 0; timeout = timeout | 0;
if (!shutdownBool && timeout < (30 * 1000)) { if (!shutdownBool) {
if (timeout > (30 * 1000)) {
timeout = 30 * 1000;
} else if (timeout < (30 * 1000)) {
timeout += 1000;
}
Script.setTimeout(function () { Script.setTimeout(function () {
if (wsReady === -1) { if (wsReady === -1) {
connectWebSocket(); connectWebSocket();
} }
sendWS(msg, timeout); sendWS(msg, timeout);
}, timeout + 1000); }, timeout);
} }
} }
} }
@ -181,7 +191,7 @@ function go2(msg) {
var dest = false; var dest = false;
var domainsList = []; var domainsList = [];
try { try {
domainsList = Script.require("http://metaverse.darlingvr.club:8081/goto.json"); domainsList = Script.require(gotoJSONUrl + "?" + Date.now());
} catch (e) { } catch (e) {
// //
} }