summaryrefslogtreecommitdiff
path: root/plexgdm.cpp
diff options
context:
space:
mode:
authorChristian <zerov83@googlemail.com>2015-12-20 18:55:27 +0100
committerChristian <zerov83@googlemail.com>2015-12-20 18:55:27 +0100
commit2a112bcf6f15603d46ab904eabb13bd8ee062a91 (patch)
treeb948261300ea449823485305b2d980504190b11d /plexgdm.cpp
parent135ed5d0ce1613f70f4b2ddcb9e8bca721ffca9e (diff)
parent4775c62bf44ba6d757722611313f53d6dd2a0b56 (diff)
downloadvdr-plugin-plex-2a112bcf6f15603d46ab904eabb13bd8ee062a91.tar.gz
vdr-plugin-plex-2a112bcf6f15603d46ab904eabb13bd8ee062a91.tar.bz2
Merge pull request #2 from chriszero/remoteserverremoteserver
merge remoteserver branch
Diffstat (limited to 'plexgdm.cpp')
-rw-r--r--plexgdm.cpp38
1 files changed, 36 insertions, 2 deletions
diff --git a/plexgdm.cpp b/plexgdm.cpp
index cdc1339..e76279d 100644
--- a/plexgdm.cpp
+++ b/plexgdm.cpp
@@ -2,6 +2,7 @@
#include "plexgdm.h"
#include "Config.h"
#include <ctime>
+#include "Plexservice.h"
namespace plexclient
{
@@ -61,8 +62,15 @@ void plexgdm::Action()
if(Config::GetInstance().UseConfiguredServer) {
// Adds a Server to vector
GetServer(Config::GetInstance().s_serverHost, Config::GetInstance().ServerPort);
+
+ if(Config::GetInstance().UsePlexAccount) {
+ GetServer(Config::GetInstance().s_serverHost, Config::GetInstance().ServerPort)->SetAuthToken(Plexservice::GetMyPlexToken());
+ }
}
+ // Get remote Resources
+ Plexservice::UpdateResources();
+
char buffer[1024];
m_registrationIsRunning = true;
m_discoveryIsRunning = true;
@@ -164,7 +172,7 @@ void plexgdm::discover()
bool flag = true;
// Check for duplicates
for(std::vector<PlexServer>::iterator s_it = m_vServers.begin(); s_it != m_vServers.end(); ++s_it) {
- if(s_it->GetIpAdress() == host) {
+ if(s_it->GetHost() == host) {
flag = false;
s_it->ParseData(data, host);
dsyslog("[plex] Server Updated: %s", host.c_str());
@@ -172,6 +180,10 @@ void plexgdm::discover()
}
if(flag) {
m_vServers.push_back(PlexServer(data, host));
+ // Set token for local servers
+ if(Config::GetInstance().UsePlexAccount) {
+ m_vServers[m_vServers.size()-1].SetAuthToken(Plexservice::GetMyPlexToken());
+ }
isyslog("[plex] New Server Discovered: %s", host.c_str());
}
}
@@ -194,7 +206,7 @@ void plexgdm::stopRegistration()
PlexServer* plexgdm::GetServer(std::string ip, int port)
{
for(std::vector<PlexServer>::iterator s_it = m_vServers.begin(); s_it != m_vServers.end(); ++s_it) {
- if(s_it->GetIpAdress() == ip && s_it->GetPort() == port) {
+ if(s_it->GetHost() == ip && s_it->GetPort() == port) {
return &(*s_it);
}
}
@@ -208,4 +220,26 @@ PlexServer* plexgdm::GetFirstServer()
else return NULL;
}
+PlexServer* plexgdm::GetServer(std::string uuid)
+{
+ for(std::vector<PlexServer>::iterator s_it = m_vServers.begin(); s_it != m_vServers.end(); ++s_it) {
+ if(s_it->GetUuid() == uuid ){
+ return &(*s_it);
+ }
+ }
+ return NULL;
+}
+
+void plexgdm::AddServer(PlexServer server)
+{
+ for(std::vector<PlexServer>::iterator s_it = m_vServers.begin(); s_it != m_vServers.end(); ++s_it) {
+ if(s_it->GetUuid() == server.GetUuid() ){
+ dsyslog("[plex] Server already in list: %s", server.GetUri().c_str());
+ return;
+ }
+ }
+ m_vServers.push_back(server);
+ isyslog("[plex] New Server Added: %s", server.GetUri().c_str());
+}
+
} // namespace