From 528927b5f2df6d6d9748912551944be58b101ea4 Mon Sep 17 00:00:00 2001
From: Michael Nielson <mnielson@phase2technology.com>
Date: Sat, 17 Jan 2015 12:50:05 -0800
Subject: [PATCH] Added Twitter post scheduler to project, which allows users
 to schedule their twitter posts.

---
 twitter_post_scheduler/twitter_post_scheduler.info |  6 +++
 .../twitter_post_scheduler.module                  | 59 ++++++++++++++++++++++
 2 files changed, 65 insertions(+)
 create mode 100755 twitter_post_scheduler/twitter_post_scheduler.info
 create mode 100644 twitter_post_scheduler/twitter_post_scheduler.module

diff --git a/twitter_post_scheduler/twitter_post_scheduler.info b/twitter_post_scheduler/twitter_post_scheduler.info
new file mode 100755
index 0000000..c5bcf84
--- /dev/null
+++ b/twitter_post_scheduler/twitter_post_scheduler.info
@@ -0,0 +1,6 @@
+name = Twitter Post Scheduler
+description = Support schduled contents for twitter post
+core = 7.x
+dependencies[] = twitter_post
+dependencies[] = scheduler
+version = 7.x-5.8
diff --git a/twitter_post_scheduler/twitter_post_scheduler.module b/twitter_post_scheduler/twitter_post_scheduler.module
new file mode 100644
index 0000000..22842a9
--- /dev/null
+++ b/twitter_post_scheduler/twitter_post_scheduler.module
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * @file
+ * Hook implementations for twitter_post_schedule module.
+ */
+
+/**
+ * Implements hook_node_insert().
+ *
+ * Remember scheduled tweet in the cache.
+ */
+function twitter_post_scheduler_node_insert($node) {
+  if (empty($node->status) and !empty($node->twitter) and !empty($node->twitter['post']) and !empty($node->publish_on)) {
+    if (!trim($node->twitter['status'])) {
+      cache_clear_all('twitter_post_scheduler:' . $node->nid, 'cache');
+    }
+    else {
+      $expire = $node->publish_on + 86400; // Make sure to expire in one day even if things go wrong.
+      cache_set('twitter_post_scheduler:' . $node->nid, $node->twitter, 'cache', $expire);
+    }
+  }
+}
+
+/**
+ * Implements hook_node_update().
+ */
+function twitter_post_scheduler_node_update($node) {
+  twitter_post_scheduler_node_insert($node);
+}
+
+/**
+ * Implements hook_node_presave().
+ *
+ */
+function twitter_post_scheduler_node_presave($node) {
+  if (!empty($node->status) and $node->publish_on == 0 and $node->original->publish_on > 0 and $twitter = cache_get('twitter_post_scheduler:' . $node->nid)) {
+    $node->twitter = $twitter->data;
+    cache_clear_all('twitter_post_scheduler:' . $node->nid, 'cache');
+  }
+}
+
+/**
+ * Implements hook_node_delete().
+ */
+function twitter_post_scheduler_node_delete() {
+  cache_clear_all('twitter_post_scheduler:' . $node->nid, 'cache');
+}
+
+/**
+ * Implements hook_form_FROM_ID_alter().
+ */
+function twitter_post_scheduler_form_node_form_alter(&$form, $form_state, $form_id) {
+  if (isset($form['twitter']) and $twitter = cache_get('twitter_post_scheduler:' . $form['nid']['#value'])) {
+
+    $form['twitter']['post']['#description'] = t('Twitter scheduled: "') . $twitter->data['status'] . '" '
+                                             . t('(To cancel scheduled tweet, leave textbox blank)');
+  }
+}
-- 
2.2.1

