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);
// feedStream Count LT maxPosts
if ( ArrayLen(feedArray) LT postQty )
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);
// feedStream Count LT maxPosts
if ( ArrayLen(feedArray) LT postQty )
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 = "";
// 2025-02-12 - Removed Twitter Posts logic
// Get the feed data from the feed cache
feedArray = [];
// feedArray = getTwitterFeedData(feedID=arguments.FeedID);
// feedStream Count LT maxPosts
if ( ArrayLen(feedArray) LT postQty )
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);
// feedStream Count LT maxPosts
if ( ArrayLen(feedArray) LT postQty )
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);
// feedStream Count LT maxPosts
if ( ArrayLen(feedArray) LT postQty )
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')));