variables.cacheTimeStampLabel = "CacheBuildDateTime"; variables.FilterElementName = getPostFilteringCEName(); // Get the feed data struct from application.ptSocialMediaCache[arguments.serviceType]; return readCacheServiceTypeData(cacheVarName=arguments.cacheVarName,cacheServiceType=arguments.serviceType); var serviceData = getCachedServiceData(serviceType=arguments.serviceType,cacheVarName=arguments.cacheVarName); // Get the feed data array from application.ptSocialMediaCache[arguments.serviceType][arguments.feedid]; if ( StructKeyExists(serviceData,arguments.feedID) ) return serviceData[arguments.feedID]; else return []; // No Feed ID - return emtpy array // Get the last cache rebuild data time string from application.ptSocialMediaCache return readCacheTimeStamp(cacheVarName=arguments.cacheVarName); var sType = "facebook"; return getCachedFeedData(serviceType=sType,feedID=arguments.feedID,cacheVarName=arguments.cacheVarName); var sType = "instagram"; return getCachedFeedData(serviceType=sType,feedID=arguments.feedID,cacheVarName=arguments.cacheVarName); var sType = "twitter"; return getCachedFeedData(serviceType=sType,feedID=arguments.feedID,cacheVarName=arguments.cacheVarName); var sType = "wordpress"; return getCachedFeedData(serviceType=sType,feedID=arguments.feedID,cacheVarName=arguments.cacheVarName); var sType = "youtube"; return getCachedFeedData(serviceType=sType,feedID=arguments.feedID,cacheVarName=arguments.cacheVarName); var serviceData = getCachedServiceData(serviceType=arguments.serviceType,cacheVarName=arguments.cacheVarName); // return the number of cached feeds (from accounts and pages) return StructCount(serviceData); var totalPosts = 0; var key = ""; var serviceData = getCachedServiceData(serviceType=arguments.serviceType,cacheVarName=arguments.cacheVarName); // return the number of cached feeds (from accounts and pages) for ( key in serviceData ) { if ( IsArray(serviceData[key]) ) totalPosts = totalPosts + ArrayLen(serviceData[key]); } return totalPosts; var feedArray = ArrayNew(1); var filteredFeedArray = ArrayNew(1); var feedData = StructNew(); var postQty = arguments.maxPosts; var d=1; var postID = ""; // Get the feed data from the feed cache feedArray = getFacebookFeedData(feedID=arguments.FeedID); if ( ArrayLen(feedArray) LT arguments.maxPosts ) postQty = ArrayLen(feedArray); // Make sure the posts are not part of the excluded post list for ( d=1; d LTE postQty; d++ ) { feedData = feedArray[d]; postID = ""; if ( StructKeyExists(feedData,"CONTENT") AND StructKeyExists(feedData.CONTENT,"POSTID") ) postID = feedData.CONTENT.POSTID; // Do not use a Feed Data for Posts that are part of the Excluded Posts List if ( LEN(TRIM(postID)) AND ListFindNoCase(arguments.excludedPostIDs,postID) EQ 0 ) { // Add feedData Struct to the feedArray ArrayAppend(filteredFeedArray,feedData); } } if ( arguments.showFeedDump ) application.ptSocialMedia.utils.doDUMP(filteredFeedArray,"Facebook-cachedfeeddata (#arguments.FeedID#)",0); return filteredFeedArray; var feedArray = ArrayNew(1); var filteredFeedArray = ArrayNew(1); var feedData = StructNew(); var postQty = arguments.maxPosts; var d=1; var postID = ""; // Get the feed data from the feed cache feedArray = getInstagramFeedData(feedID=arguments.FeedID); if ( ArrayLen(feedArray) LT arguments.maxPosts ) postQty = ArrayLen(feedArray); // Make sure the posts are not part of the excluded post list for ( d=1; d LTE postQty; d++ ) { feedData = feedArray[d]; postID = ""; if ( StructKeyExists(feedData,"CONTENT") AND StructKeyExists(feedData.CONTENT,"POSTID") ) postID = feedData.CONTENT.POSTID; // Do not use a Feed Data for Posts that are part of the Excluded Posts List if ( LEN(TRIM(postID)) AND ListFindNoCase(arguments.excludedPostIDs,postID) EQ 0 ) { // Add feedData Struct to the feedArray ArrayAppend(filteredFeedArray,feedData); } } if ( arguments.showFeedDump ) application.ptSocialMedia.utils.doDUMP(filteredFeedArray,"Instagram-cachedfeeddata (#arguments.FeedID#)",0); return filteredFeedArray; var feedArray = ArrayNew(1); var filteredFeedArray = ArrayNew(1); var feedData = StructNew(); var postQty = arguments.maxPosts; var d=1; var postID = ""; // Get the feed data from the feed cache feedArray = getTwitterFeedData(feedID=arguments.FeedID); if ( ArrayLen(feedArray) LT arguments.maxPosts ) postQty = ArrayLen(feedArray); // Make sure the posts are not part of the excluded post list for ( d=1; d LTE postQty; d++ ) { feedData = feedArray[d]; postID = ""; if ( StructKeyExists(feedData,"CONTENT") AND StructKeyExists(feedData.CONTENT,"POSTID") ) postID = feedData.CONTENT.POSTID; // Do not use a Feed Data for Posts that are part of the Excluded Posts List if ( LEN(TRIM(postID)) AND ListFindNoCase(arguments.excludedPostIDs,postID) EQ 0 ) { // Add feedData Struct to the feedArray ArrayAppend(filteredFeedArray,feedData); } } if ( arguments.showFeedDump ) application.ptSocialMedia.utils.doDUMP(filteredFeedArray,"Twitter-cachedfeeddata (#arguments.FeedID#)",0); return filteredFeedArray; var feedArray = ArrayNew(1); var filteredFeedArray = ArrayNew(1); var feedData = StructNew(); var postQty = arguments.maxPosts; var d=1; var postID = ""; // Get the feed data from the feed cache feedArray = getWordPressFeedData(feedID=arguments.FeedID); if ( ArrayLen(feedArray) LT arguments.maxPosts ) postQty = ArrayLen(feedArray); // Make sure the posts are not part of the excluded post list for ( d=1; d LTE postQty; d++ ) { feedData = feedArray[d]; postID = ""; if ( StructKeyExists(feedData,"CONTENT") AND StructKeyExists(feedData.CONTENT,"POSTID") ) postID = feedData.CONTENT.POSTID; // Do not use a Feed Data for Posts that are part of the Excluded Posts List if ( LEN(TRIM(postID)) AND ListFindNoCase(arguments.excludedPostIDs,postID) EQ 0 ) { // Add feedData Struct to the feedArray ArrayAppend(filteredFeedArray,feedData); } } if ( arguments.showFeedDump ) application.ptSocialMedia.utils.doDUMP(filteredFeedArray,"WordPress-cachedfeeddata (#arguments.FeedID#)",0); return filteredFeedArray; var feedArray = ArrayNew(1); var filteredFeedArray = ArrayNew(1); var feedData = StructNew(); var postQty = arguments.maxPosts; var d=1; var postID = ""; // Get the feed data from the feed cache feedArray = getYourTubeFeedData(feedID=arguments.FeedID); if ( ArrayLen(feedArray) LT arguments.maxPosts ) postQty = ArrayLen(feedArray); // Make sure the posts are not part of the excluded post list for ( d=1; d LTE postQty; d++ ) { feedData = feedArray[d]; postID = ""; if ( StructKeyExists(feedData,"CONTENT") AND StructKeyExists(feedData.CONTENT,"POSTID") ) postID = feedData.CONTENT.POSTID; // Do not use a Feed Data for Posts that are part of the Excluded Posts List if ( LEN(TRIM(postID)) AND ListFindNoCase(arguments.excludedPostIDs,postID) EQ 0 ) { // Add feedData Struct to the feedArray ArrayAppend(filteredFeedArray,feedData); } } if ( arguments.showFeedDump ) application.ptSocialMedia.utils.doDUMP(filteredFeedArray,"YouTube-cachedfeeddata (#arguments.FeedID#)",0); return filteredFeedArray; return writeCacheServiceTypeData( cacheVarName=arguments.cacheVarName, cacheServiceType=arguments.serviceType, cacheData=arguments.serviceFeedData ); var retStr = "copy:failed"; // Get the Source Data from the Source Application variable var sourceFeedData = readCacheFeedeData(cacheVarName=arguments.sourceVarName); // Make sure the Source Variable Name is not the same as the Destination Variable name if ( arguments.sourceVarName NEQ arguments.destVarName ) { // Write the Source Data to the Destination Application scope variable retStr = writeCacheFeedData( cacheVarName=arguments.destVarName, cacheData=sourceFeedData ); } return retStr; return deleteCacheData(cacheVarName=arguments.cacheVarName); var retData = StructNew(); var lockName = TRIM("application." & arguments.cacheVarName); var retData = StructNew(); var lockName = TRIM("application." & arguments.cacheVarName); var filePath = getFeedCacheFilePath(cacheServiceType=cacheServiceType); var fileDir = ExpandPath(filePath); if ( StructKeyExists(application,arguments.cacheVarName) AND StructKeyExists(application[arguments.cacheVarName],arguments.cacheServiceType) ) retData = application[arguments.cacheVarName][arguments.cacheServiceType]; else if ( FileExists(fileDir) ) retData = readFeedServiceTypeJSON(cacheServiceType=arguments.cacheServiceType); var retStr = ""; var lockName = TRIM("application." & arguments.cacheVarName); var timeStampVar = getTimeStampVarName(cacheServiceType=arguments.cacheServiceType,cacheTimeStampVarName=arguments.cacheTimeStampVarName); var retStr = "write:success"; var lockName = TRIM("application." & arguments.cacheVarName); var retStr = "write:success"; var dateTimeStamp = Now(); var lockName = TRIM("application." & arguments.cacheVarName); var timeStampVar = getTimeStampVarName(cacheTimeStampVarName=arguments.cacheTimeStampVarName); var retStr = "write:success"; var dateTimeStamp = Now(); var lockName = TRIM("application." & arguments.cacheVarName); var timeStampVar = getTimeStampVarName(cacheServiceType=arguments.cacheServiceType,cacheTimeStampVarName=arguments.cacheTimeStampVarName); var useFeedCacheFile = getServiceTypeFeedCacheFileEnabled(); // Create the Service Type Feed Cache File if ( retStr NEQ "write:failed" AND useFeedCacheFile ) writeFeedCacheJSON(cacheServiceType=arguments.cacheServiceType,cacheData=arguments.cacheData,cacheTimeStampVarName=arguments.cacheTimeStampVarName); var retStr = "write:success"; var dateTimeStamp = Now(); var lockName = TRIM("application." & arguments.cacheVarName); var timeStampVar = getTimeStampVarName(cacheServiceType=arguments.cacheServiceType,cacheTimeStampVarName=arguments.cacheTimeStampVarName); var retStr = "delete:failed"; var lockName = TRIM("application." & arguments.cacheVarName); var dataStruct = StructNew(); var ceArray = Application.ptSocialMedia.CEData.getCEData(variables.FilterElementName); if ( ArrayLen(ceArray) ) dataStruct = ceArray[1]; return dataStruct; ---> var retStr = variables.cacheTimeStampLabel; // If a cacheTimeStampVarName is provided override the default if ( LEN(TRIM(arguments.cacheTimeStampVarName)) ) retStr = TRIM(arguments.cacheTimeStampVarName); // if a cacheServiceType is provided make it the prefix for the timestamp variable if ( LEN(TRIM(arguments.cacheServiceType)) ) retStr = TRIM(arguments.cacheServiceType & retStr); return retStr; var dir = getFeedCacheBaseFolderPath(); var dirResult = ''; var jsonData = ''; var feedData = {}; var fileData = defaultFeedCacheFileData(cacheServiceType=arguments.cacheServiceType); //,cacheTimeStampVarName=arguments.cacheTimeStampVarName var filePath = getFeedCacheFilePath(cacheServiceType=arguments.cacheServiceType); var fileDir = ExpandPath(filePath); var dateTimeStamp = Now(); var timeStampVar = getTimeStampVarName(cacheServiceType=arguments.cacheServiceType,cacheTimeStampVarName=arguments.cacheTimeStampVarName); // Create the directory structure if needed dirResult = application.ptSocialMedia.utils.createDataFileFolders(filePath=fileDir); feedData[arguments.cacheServiceType] = Duplicate(arguments.cacheData); feedData[timeStampVar] = dateTimeStamp; fileData = Duplicate(fileData); structAppend(fileData,feedData,true); jsonData = serializeJSON(fileData); FileWrite(fileDir,jsonData); return fileDir; var retStruct = {}; var defaultData = defaultFeedCacheFileData(cacheServiceType=arguments.cacheServiceType); //,cacheTimeStampVarName=arguments.cacheTimeStampVarName var dataStr = ''; var dir = getFeedCacheBaseFolderPath(); var filePath = getFeedCacheFilePath(cacheServiceType=arguments.cacheServiceType); var fileDir = ExpandPath(filePath); var fileData = {}; retStruct = Duplicate(defaultData); if ( FileExists(fileDir) ) { dataStr = FileRead(fileDir); retStruct = deserializeJSON(dataStr); } else retStruct.error_msg = 'Cache file does not exist! - #fileDir#'; return retStruct; var retStruct = readFeedCacheJSON(cacheServiceType=arguments.cacheServiceType); if ( StructKeyExists(retStruct,arguments.cacheServiceType) ) retStruct = retStruct[arguments.cacheServiceType]; return retStruct; return '/_cs_apps/pt_social_media/feed_cache/'; var basePath = getFeedCacheBaseFolderPath(); var fileName = getFeedCacheFileName(cacheServiceType=arguments.cacheServiceType); return basePath & fileName; var fileName = normalizeFeedCacheServiceFileName(cacheServiceType=arguments.cacheServiceType); return fileName & '.json'; var retStruct = { '#arguments.cacheServiceType#' : {} }; var timeStampVar = getTimeStampVarName(cacheServiceType=arguments.cacheServiceType,cacheTimeStampVarName=arguments.cacheTimeStampVarName); retStruct[timeStampVar] = ''; return retStruct; return TRIM(LCASE(ReReplace(arguments.cacheServiceType,'[^0-9A-Za-z]','_','all')));