xibosignage / xibo Goto Github PK
View Code? Open in Web Editor NEWXibo Digital Signage
Home Page: https://xibosignage.com
License: GNU Affero General Public License v3.0
Xibo Digital Signage
Home Page: https://xibosignage.com
License: GNU Affero General Public License v3.0
At the moment the temperature is shown in 2dp, which looks a bit odd!
Issue to collect thoughts and feedback on what Interactive Signage should be available within Xibo. We have two main thoughts at present:
Providing a mechanism in Xibo for defining click-able areas and then a way to respond to those clicks and do certain things.
Provide a mechanism to respond to outside events, these could be generated by a helper application for each type of event.
Support for:
This is because the error message is not captured by the calling method - however it would be better in this case to throw an exception.
When connecting to the Xibo API in 1.7, the message:
"The server with key "XXX" has already been registered"
Even on a new database set up with no current users, this message still gets returned.
services.php is in there twice.
Example:
xri://$xrds*simple http://oauth.net/discovery/1.0 #main http://oauth.net/core/1.0/endpoint/request http://oauth.net/core/1.0/parameters/auth-header http://oauth.net/core/1.0/parameters/uri-query http://oauth.net/core/1.0/signature/HMAC-SHA1 http://oauth.net/core/1.0/signature/PLAINTEXT http://172.28.128.3/services.php/services.php?service=oauth&method=request_token http://oauth.net/core/1.0/endpoint/authorize http://oauth.net/core/1.0/parameters/uri-query http://172.28.128.3/services.php/index.php?p=oauth&q=authorize http://oauth.net/core/1.0/endpoint/access http://oauth.net/core/1.0/parameters/auth-header http://oauth.net/core/1.0/parameters/uri-query http://oauth.net/core/1.0/signature/HMAC-SHA1 http://oauth.net/core/1.0/signature/PLAINTEXT http://172.28.128.3/services.php/services.php?service=oauth&method=access_tokenHello. I have seen a question regarding the Forecast.io units and the possibility of adding an option to change them. I think that adding also an option to set the language parameter would be really good. It would be actually necessary to show the text info in many countries.
Ideally, it should be set at the media timeline level (not in general module settings) so that several timeline items could show several languages if necessary.
Such as:
Many of these have been done already - but the first one is still valid.
Hey Dan
Found another interesting one. This worked fine in Version 1.6.x, but applyiing the same request in 1.7 is giving a "Not signed." error.
The problem seems to be related to the OAuthRequestVerifier::requestIsSigned() method - which appears to be returning false.
I have successfully connected to the API - the server token is active etc.
In 1.6, I would pass the following to the API:
OAuthRequester Object
(
[files:protected] =>
[request:protected] =>
[store:protected] => OAuthStorePDO Object
(
[conn:OAuthStorePDO:private] => PDO Object
(
)
[lastaffectedrows:OAuthStorePDO:private] =>
[max_timestamp_skew:protected] => 600
[max_request_token_ttl:protected] => 3600
)
[usr_id:protected] => 0
[signed:OAuthRequestSigner:private] =>
[realm:protected] =>
[param:protected] => Array
(
[service] => rest
[method] => LayoutList
[response] => json
)
[uri_parts:protected] => Array
(
[scheme] => http
[host] => 360ds2.localhost
[path] => /xibo-cms/services.php
[port] => 80
[user] =>
[pass] =>
[query] =>
[fragment] =>
)
[uri:protected] => http://360ds2.localhost/xibo-cms/services.php
[headers:protected] => Array
(
[Accept] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[Accept-Encoding] => gzip, deflate
[Accept-Language] => en-US,en;q=0.5
[Cache-Control] => max-age=0
[Connection] => keep-alive
[Cookie] => CAKEPHP=bjcb1oigc9pfuidf2jb5car5o4; PHPSESSID=0r21b2ghfgeq5m9rlfmhjf2m95; CakeCookie[lang]=en; CakeCookie[userId]=6; CakeCookie[role]=1; CakeCookie[system_type]=0; CakeCookie[datasets_name]=Hantera+data
[Host] => 360ds2.localhost
[Referer] => http://360ds2.localhost/admin
[User-Agent] => Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0
)
[method:protected] => GET
[body:protected] =>
)
This would work fine in 1.6
In 1.7, I am passing the following:
OAuthRequester Object
(
[files:protected] =>
[request:protected] =>
[store:protected] => OAuthStorePDO Object
(
[conn:OAuthStorePDO:private] => PDO Object
(
)
[lastaffectedrows:OAuthStorePDO:private] =>
[max_timestamp_skew:protected] => 600
[max_request_token_ttl:protected] => 3600
)
[usr_id:protected] => 0
[signed:OAuthRequestSigner:private] =>
[realm:protected] =>
[param:protected] => Array
(
[service] => rest
[method] => LayoutList
[response] => json
)
[uri_parts:protected] => Array
(
[scheme] => http
[host] => 360ds2.localhost
[path] => /xibo/services.php
[port] => 80
[user] =>
[pass] =>
[query] =>
[fragment] =>
)
[uri:protected] => http://360ds2.localhost/xibo/services.php
[headers:protected] => Array
(
[Accept] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[Accept-Encoding] => gzip, deflate
[Accept-Language] => en-US,en;q=0.5
[Cache-Control] => max-age=0
[Connection] => keep-alive
[Cookie] => CAKEPHP=bjcb1oigc9pfuidf2jb5car5o4; PHPSESSID=0r21b2ghfgeq5m9rlfmhjf2m95; CakeCookie[lang]=en; CakeCookie[userId]=6; CakeCookie[role]=1; CakeCookie[system_type]=0; CakeCookie[datasets_name]=Hantera+data
[Host] => 360ds2.localhost
[Referer] => http://360ds2.localhost/admin
[User-Agent] => Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0
)
[method:protected] => GET
[body:protected] =>
)
You will notice, it is almost the same, however this time, I am getting this not signed error.
Could there be something else missing. I should note, I am following the old API PHP code:
public function LayoutList() {
// The request uri being called.
$user_id = 1;
$request_uri = SERVER_BASE . 'services.php';
// Parameters, appended to the request depending on the request method.
// Will become the POST body or the GET query string.
$params = array(
'service' => 'rest',
'method' => 'LayoutList',
'response' => RESPONSE
);
// Obtain a request object for the request we want to make
$req = new OAuthRequester($request_uri, 'GET', $params);
// Sign the request, perform a curl request and return the results, throws OAuthException exception on an error
$result = $req->doRequest($user_id);
return $this->processData($result);
}
I am not sure if the $user_id = 1; is related - it always worked in 1.6
When I change the $user_id = 2, I get the message:
No server tokens available for http://360ds2.localhost/xibo-cms/services.php
When it is set to $user_id = 1, get:
"Request failed with code 500: "
Unfortunutely, with no related message with it other than a 500.
In the translations in 1.6.4 (and possibly earlier), there's an en_GB.mo but no en.mo, so if another translated language is configured in the browser preferences, then that will take precedence over the English.
eg browser settings for
English
English (United States)
Russian
will cause it to render in Russian.
This is a bug in an upstream library
Improved Filter Users
In the users screen, we could have the filter with the standards adopted in other areas of the system.
Miss display only active users, and the filter has option to view inactive users.
This functionality would be very interesting for companies and administrators who use the tool.
We Could have the functionality to set quota of disk space per user and per user group. We currently have the option just by CMS (some or not), I think they are complementary.
This would help in stimulating the user uploads content to clean que que items are no longer used in Their display case.
Whenever the screen upload content Appears, We Could present the user quota and how much he has used and available to perform the upload.
We Could be related to an item in the library statistics, where he had his share of viewing, used space, available space and splits for each media type for each percentage.
What do you think?
We currently have a quota of disk space for the entire system sharing this Among all users share.
Support for the Jalali Calendar in:
Originally reported by @laercionit https://bugs.launchpad.net/xibo/+bug/1397762
"Embedded and Ticker invalid scale on 1.7 Layout After Upgrade"
Change formatting time downtime for hours or minutes. This in seconds, generating huge numbers and meaningless to the end user.
In my opinion in HH: MM would be perfect.
hello i make 2 script for testing API i'm running xibo 1.6.4 server on linux
1 Script
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Script to upload a Video to the Xibo CMS and replace
# an old copy of it in a region
# Imports
import os
from xml.dom import minidom
import XiboAPI
api = XiboAPI.XiboAPI()
# Call the LayoutList Method
response, status, code, message, content = api.callMethod('LayoutList')
# Parse the response XML
doc = minidom.parseString(content)
params = [('layoutId', '4'),
('regionId', '47ff29524ce1b'),
('mediaiId', '2fd03b0503316a593dcbdb67c8999e59')]
# Call the RegionList Method
response, status, code, message, content = api.callMethod('LayoutRegionMediaDelete', params)
duration=100
params = [('layoutid', '6'),
('regionid', '54c00c67e199c'),
('type', 'webpage'),
('xlf', '<media type="webpage" duration="' + str(duration) + """" schemaVersion="1">
<options>
<uri>http%3A%2F%2Flocalhost</uri>
<scaling>100</scaling>
<transparency>0</transparency>
<offsetLeft>0</offsetLeft>
<offsetTop>0</offsetTop>
</options>
<raw></raw>
</media>""",)]
# Call the RegionList Method
response, status, code, message, content = api.callMethod('LayoutRegionMediaAdd', params)
this script work correctly this is my log output.
-- Cut Log --
13065 2015-01-22 09:50:16 RestXml Respond <?xml version="1.0"?>
<rsp status="ok">
<media id="f26e40590e18fd3cf56b99120554b7a1"/>
</rsp>
13064 2015-01-22 09:50:16 Finished Updating Region
13063 2015-01-22 09:50:16 Layout SetValid OUT
13062 2015-01-22 09:50:16 module SetMediaInformation Existing Assigned Media XML is: \n <?xml version="1.0"?>
<root><media type="webpage" duration="100" schemaVersion="1" id="fe4e5cc1a76f023e60fb23decd4d1042" userId="3">
<options>
<uri>http%3A%2F%2Flocalhost</uri>
<scaling>100</scaling>
<transparency>0</transparency>
<offsetLeft>0</offsetLeft>
<offsetTop>0</offsetTop>
</options>
<raw/>
</media></root>
13061 2015-01-22 09:50:16 Layout GetLayoutXml OUT
13060 2015-01-22 09:50:16 Layout GetLayoutXml IN
13059 2015-01-22 09:50:16 Module created with MediaID: fe4e5cc1a76f023e60fb23decd4d1042 LayoutID: 6 and RegionID: 54c00c67e199c
13058 2015-01-22 09:50:16 Layout GetLayoutXml OUT
13057 2015-01-22 09:50:16 Layout GetLayoutXml IN
13056 2015-01-22 09:50:16 layout IsValid Assessing Region: 54c00c67e199c
13055 2015-01-22 09:50:16 layout GetRegionList [OUT]
13054 2015-01-22 09:50:16 layout GetRegionList [IN] Loaded XML into DOM
13053 2015-01-22 09:50:16 layout SetDomXML Loaded LayoutXml into the DOM
13052 2015-01-22 09:50:16 layout SetDomXML Loading LayoutXml into the DOM
13051 2015-01-22 09:50:16 Layout GetLayoutXml OUT
13050 2015-01-22 09:50:16 Layout GetLayoutXml IN
13049 2015-01-22 09:50:16 layout IsValid Reassesment Required
13048 2015-01-22 09:50:16 layout IsValid [IN]
13047 2015-01-22 09:50:16 Layout SetValid IN
13046 2015-01-22 09:50:16 Layout SetLayoutXml OUT
13045 2015-01-22 09:50:16 display NotifyDisplays Checking for Displays to refresh on Layout 3
13044 2015-01-22 09:50:16 Layout SetLayoutXml IN
13043 2015-01-22 09:50:16 LayoutMediaGroupSecurity Link OUT
13042 2015-01-22 09:50:16 LayoutMediaGroupSecurity Link IN
13041 2015-01-22 09:50:16 region AddMedia <media type="webpage" duration="100" schemaVersion="1" id="f26e40590e18fd3cf56b99120554b7a1" userId="3">
<options>
<uri>http%3A%2F%2Flocalhost</uri>
<scaling>100</scaling>
<transparency>0</transparency>
<offsetLeft>0</offsetLeft>
<offsetTop>0</offsetTop>
</options>
<raw/>
</media>
13040 2015-01-22 09:50:16 Layout GetLayoutXml OUT
13039 2015-01-22 09:50:16 Layout GetLayoutXml IN
13038 2015-01-22 09:50:16 Updating Region
13037 2015-01-22 09:50:16 module ValidateMediaXml A new media entry
13036 2015-01-22 09:50:16 module ValidateMediaXml Validating provided XLF
13035 2015-01-22 09:50:16 module SetMediaXml Provided XML Loaded
13034 2015-01-22 09:50:16 module SetMediaXml Setting the media XML for this item directly
13033 2015-01-22 09:50:16 Module created with MediaID: LayoutID: 6 and RegionID: 54c00c67e199c
13032 2015-01-22 09:50:16 Layout GetLayoutXml OUT
13031 2015-01-22 09:50:16 Layout GetLayoutXml IN
13030 2015-01-22 09:50:16 Services Authenticated API call for [LayoutRegionMediaAdd] with a [xml] response. Issued by UserId: 3
After I make an second script to delete the new media
2 Script
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Script to upload a Video to the Xibo CMS and replace
# an old copy of it in a region
# Imports
import os
from xml.dom import minidom
import XiboAPI
api = XiboAPI.XiboAPI()
params = [('layoutId', '6'),
('regionId', '54c00c67e199c'),
('mediaId', 'fe4e5cc1a76f023e60fb23decd4d1042')]
# Call the RegionList Method
response, status, code, message, content = api.callMethod('LayoutRegionMediaDelete', params)
this script not delete the media end send me this error
-- Cut Log --
13069 2015-01-22 09:57:36 <errormsg>No results returned</errormsg>
<errornum>1024</errornum>
<errortype>User Notice</errortype>
<scriptname>/var/www/xibo/lib/service/rest.class.php</scriptname>
<scriptlinenum>1036</scriptlinenum>
13068 2015-01-22 09:57:36 Layout GetLayoutXml OUT
13067 2015-01-22 09:57:36 Layout GetLayoutXml IN
13066 2015-01-22 09:57:36 Services Authenticated API call for [LayoutRegionMediaDelete] with a [xml] response. Issued by UserId: 3
please help me
Something goes wrong with Twitter in the parsing of special characters like apostrophes, ' turns into â as seen in this example:
"Good students of @KaiminNews & @UMJSchool, enjoy winter break. I’m going to make your brain hurt starting next week. http://www.ronreason.com/pollner/ "
turns into:
"Good students of @KaiminNews & @UMJSchool, enjoy winter break. I�m going to make your brain hurt starting next week."
I'm not sure if this an issue in the character encoding used or what might be causing this, but it definitely looks bad.
Currently you have to specify the /en
sub-folder, which doesn't make sense. It would be far better if there was an index.html in the root folder which detected the language and redirected accordingly.
Useful for changing between 24hr and 12hr clock
Original reported here: https://bugs.launchpad.net/xibo/+bug/1409107
I am attempting to upload the following XML via the LayoutRegionMediaAdd method in the API.
The XML is for an image, as below:
<!--?xml version="1.0"?-->
<layout width="800" height="450" bgcolor="#000000" schemaversion="1"><region name="asfasdasd" id="54bd569e74009" userid="1" width="800" height="450" top="0" left="0"><media id="122" type="image" duration="10" lkid="73" userid="1" schemaversion="1">
<options><uri>122.jpg</uri></options>
<raw>
</raw></media></region></layout>
However, I get an error when posting this. The error says "ID does not match".
I debugged the code, and found the following:
Line 1958 of lib/modules/module.class.php has the following:
// We already know that the media id exists, now check it matches
if ($mediaNode->getAttribute('id') != $this->mediaid)
return $this->SetError(__('ID does not match'));
The problem, as far as I can tell, is that the $this->mediaid variable is never defined in the API, so it is blank.
This problem exists on version 1.6 as well.
Show the midiaid the timeline and grid helps the user to not have to go in the library could to identify which video is in blacklist. Basically an adjustment aiming usability and maintenance.
Unused method left overs in service_v3.wsdl
Delete User Objects to Erase User
To maintain the system always clean, that's usually when deleting a user to list the types of objects that the user owns.
media
layouts
campaigns
groups
We could present to the administrator user the option to delete and delete all the contents of the system whose Owner is the user we are putting out.
This will help maintain the library, layouts, and all other objects of clean systems. Can be made up by the bank, through the On Delete Cascade.
There are a few issues:
Target use-cases would be:
Basically any content that is HTML enabled.
We would need to have some notation to reference the library file in a user friendly way and then substitute the actual file location (and make the layout link) at run time.
Open TV ISDB-T Receiver
There are many softwares on the market that have content management and inclusion of broadcast TV on your schedule. If we use a USB Digital TV receiver in android, we could view the contents with broadcast TV.
This innovation already present in some other products and market software.
Internal Ref: 2967.
Modules can now cache library resources (typically images) as "module" typed media in the library. They are invisible to the user and specific to the CMS.
The Layout Export should not include these in the export ZIP (they cannot be imported).
At the moment it is set to "auto", which should guess the units based on the region the forecast is for - however overriding that may be desirable.
Found during the course of investigation on #24.
The API uses DOMElement to pass between the base class and the class responsible for formatting the response to either json or xml.
At present the code incorrectly expects different parameters to the same overridden methods (json expects arrays and xml expects DOMElements).
The base currency should really be an array, meaning json responses can be json_encoded
straight out the gate, and XML responses can be array to XML conversions (which is easy).
The ticker functionality is spectacular, helps users and can enter more interesting content from sources outside the system.
Currently use a region in front of the ticker region to insert an image. The image of the logo of the ticker provider.
When we have multiple tickers and different news providers, starts to get complicated.
Inform the duration of imagems, to synchronize with the duration of the ticker...lol
My request is the ticker configuration screen, include a field image logo ticker. If the image is inserted, we allow the user to enter in front of the ticker when it is displayed in the designer and display.
What do you think?
https://bugs.launchpad.net/xibo/+bug/1410219
In "displays" section, there is some issues displaying displays information in table. Table is wider than the screen and requires horizontal scrolling which is not really convenient. Even using a macbook with 1440x900 screen resolution.
Hi,
I use the following setup:
during Xibo 1.7-rc1 installation I get the following error:
An error occurred populating the database. Statement number: 89. Error Message = [SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'userChange' at row 26]
I deleted the database several times and retried the installation, the result is always the same.
I would be very thankful for any help,
Carsten
People Counter
I believe this is a trend in the market, integrate the system to a counter of people who went and looked at the display.
We could have a WebCam, connected to android. The software android would have the option to enable Track People. If enabled, select the webcam.
This information is valuable, could be presented in Statistics, part of the Layout or Display.
Not complex but has a potential for the market.
I hope you like the idea DAN.
General discussion for a replacement to the Ubuntu Python Client
Embedded Layout on WebPage
This feature is interesting for enterprise environments.
Imagine that we have a layout called intranet, put there that wish to present content on the intranet.
We could have the ability to dynamically generate a link that can embedar web page. This functionality is much explored in other solutions.
I have a size 3240 x 1920 (three Full HD monitors) with three regions. Each 1080 x 1920. If I enter the otpions the width of the region (1080) ist 1081.
If one isn't be careful you save the region with this bad value.
Reusable Playlists - has also been called Timelines and Content Streams.
Issue originally reported by @laercionit https://bugs.launchpad.net/xibo/+bug/1409108
Not sure on the exact circumstances, hopefully something will break so the issue can be tracked down.
Subsequent errors:
Notice: Undefined index: in C: \ xampp \ htdocs \ @ Test @ \ lib \ data
displayprofile.data.class.php on line 97
Notice: Undefined index: in C: \ xampp \ htdocs \ @ Test @ \ lib \ data
displayprofile.data.class.php on line 99
Warning: Invalid argument supplied for foreach () in C: \ xampp \ htdocs
@ Test @ \ lib \ data \ display.data.class.php on line 666
Notice: Undefined index: in C: \ xampp \ htdocs \ @ Test @ \ lib \ data
displayprofile.data.class.php on line 97
Notice: Undefined index: in C: \ xampp \ htdocs \ @ Test @ \ lib \ data
displayprofile.data.class.php on line 99
Warning: Invalid argument supplied for foreach () in C: \ xampp \ htdocs
@ Test @ \ lib \ data \ display.data.class.php on line 666
Notice: Undefined index: in C: \ xampp \ htdocs \ @ Test @ \ lib \ data
displayprofile.data.class.php on line 97
Notice: Undefined index: in C: \ xampp \ htdocs \ @ Test @ \ lib \ data
displayprofile.data.class.php on line 99
Warning: Invalid argument supplied for foreach () in C: \ xampp \ htdocs
@ Test @ \ lib \ data \ display.data.class.php on line 666
This is my first bug reported, so I don't know all the information to include. I'll start with the basics. I have two identical Win 7 PCs driving TVs created from the same image. Both are using the same Xibo profile, and currently using the embedded Chrome browser (which is much more stable than not using it). One of the PCs Xibo client crashes multiple times a day, even after a full reboot.
The content is simple and is shown below. I moved from 1.6 to 1.7 because of similar problems, but they were more widespread. In general, 1.7 is better and I do like the improvements. Not all functions work, but that's a topic for a different bug report.
Please let me know what other information to include. I would have given the crash report, but don't have a live crash right now. I should have one by the end of the day based on the current rate.
I did turn off double buffering, which was on when I got crashes.
----Content---
1 web page:
http://forecast.weather.gov/MapClick.php?lat=37.95695757962966&lon=-84.47169632352575&site=all&smap=1#.VL1nA2TF-nA
and two embedded links that are form the same site, different pages:
<center>
<font size="8" color = "cyan">
<P> <P>
<P> <P>
<P> <P>
<script type="text/javascript" src="http://www.brainyquote.com/link/quotefu.js"></script>
<P> <P>
</font>
</center>
Uploaded images are often have dimensions that are far too large or a high DPI which pushes up network usage across the platform and resource usage on the player.
It would be useful to have an image sampling policy that pre-sampled the image (on upload) to take its size and DPI to a pre-determined level.
This would be useful in the case that they were scheduled in error. Original post: https://answers.launchpad.net/xibo/+question/261019
Hi,
I'm working on some translations on your launchpad site.
To be sure I get the right words in my language, I'm looking the words up where they appear in Xibo.
But I can't find "Lock Module Config" (Located in server/locale/dbtranslate.php:98 ). I've looked up all settings pages. I just can't find it.
We get display up/down messages, but we don't get notification of errors on displays. This would be nice to track what is happening with the network and respond to any known issues.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.