document.open();document.writeln('<div onmouseover="document.getElementById(\'snipt-4675\').style.display = \'block\'; return false;" onmouseout="document.getElementById(\'snipt-4675\').style.display = \'none\'; return false;" style="position: relative;">');document.writeln('<div class="highlight"><pre style="-moz-border-radius: 5px; border-radius: 5px; -webkit-border-radius: 5px; margin: 0; display: block; font: 11px Monaco, monospace !important; padding: 15px; background-color: #1C1C1C; overflow: auto; color: #D0D0D0;"><span style="color: #999999; font-style: italic">#!/opt/local/bin/python</span>');document.writeln('<span style="color: #999999; font-style: italic"># -*- coding: utf-8 -*-</span>');document.writeln('<span style="color: #ed9d13">&quot;&quot;&quot;</span>');document.writeln('<span style="color: #ed9d13">@requirements: python-twitter : a wrapper around the Twitter API (http://code.google.com/p/python-twitter/)</span>');document.writeln('<span style="color: #ed9d13">@author: Radu Boncea</span>');document.writeln('<span style="color: #ed9d13">@contact: http://raduboncea.ro http://twitter.com/raduboncea</span>');document.writeln('<span style="color: #ed9d13">&quot;&quot;&quot;</span>');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">import</span> <span style="color: #447fcf; text-decoration: underline">imaplib</span><span style="color: #d0d0d0">,</span> <span style="color: #447fcf; text-decoration: underline">sys</span><span style="color: #d0d0d0">,</span> <span style="color: #447fcf; text-decoration: underline">re</span><span style="color: #d0d0d0">,</span> <span style="color: #447fcf; text-decoration: underline">twitter</span>');document.writeln('');document.writeln('');document.writeln('<span style="color: #d0d0d0">GMAIL_USERNAME</span> <span style="color: #d0d0d0">=</span> <span style="color: #ed9d13">&#39;GMAIL_USERNAME&#39;</span>');document.writeln('<span style="color: #d0d0d0">GMAIL_PASSWORD</span> <span style="color: #d0d0d0">=</span> <span style="color: #ed9d13">&#39;GMAIL_PASSWORD&#39;</span>');document.writeln('<span style="color: #d0d0d0">GMAIL_TWITTER_LABEL</span> <span style="color: #d0d0d0">=</span> <span style="color: #ed9d13">&#39;TwitterFollow&#39;</span>');document.writeln('');document.writeln('<span style="color: #d0d0d0">TWITTER_USERNAME</span> <span style="color: #d0d0d0">=</span> <span style="color: #ed9d13">&#39;TWITTER_USERNAME&#39;</span>');document.writeln('<span style="color: #d0d0d0">TWITTER_PASSWORD</span> <span style="color: #d0d0d0">=</span> <span style="color: #ed9d13">&#39;TWITTER_PASSWORD&#39;</span>');document.writeln('<span style="color: #d0d0d0">TWITTER_DM</span> <span style="color: #d0d0d0">=</span> <span style="color: #ed9d13">&#39;10x for the follow. Interested in seo,web,social nets, programming. You can also find me on http://raduboncea.ro Many tweets!&#39;</span>');document.writeln('');document.writeln('');document.writeln('<span style="color: #d0d0d0">mail</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">imaplib.IMAP4_SSL(</span><span style="color: #ed9d13">&#39;imap.gmail.com&#39;</span><span style="color: #d0d0d0">,</span> <span style="color: #3677a9">993</span><span style="color: #d0d0d0">)</span>');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">try</span><span style="color: #d0d0d0">:</span>');document.writeln('    <span style="color: #d0d0d0">mail.login(GMAIL_USERNAME,</span> <span style="color: #d0d0d0">GMAIL_PASSWORD)</span>');document.writeln('<span style="color: #6ab825; font-weight: normal">except</span> <span style="color: #bbbbbb">Exception</span><span style="color: #d0d0d0">,e:</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #d0d0d0">e</span>');document.writeln('    <span style="color: #d0d0d0">sys.exit()</span>');document.writeln('');document.writeln('<span style="color: #d0d0d0">mail.select(GMAIL_TWITTER_LABEL,</span> <span style="color: #d0d0d0">readonly=</span><span style="color: #24909d">False</span><span style="color: #d0d0d0">)</span>');document.writeln('<span style="color: #d0d0d0">retcode,</span> <span style="color: #d0d0d0">msg_ids</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">mail.search(</span><span style="color: #24909d">None</span><span style="color: #d0d0d0">,</span> <span style="color: #ed9d13">&#39;UNSEEN&#39;</span><span style="color: #d0d0d0">)</span>');document.writeln('<span style="color: #6ab825; font-weight: normal">if</span> <span style="color: #d0d0d0">retcode</span> <span style="color: #d0d0d0">!=</span> <span style="color: #ed9d13">&#39;OK&#39;</span><span style="color: #d0d0d0">:</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #ed9d13">&#39;Error&#39;</span> <span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">retcode</span>');document.writeln('    <span style="color: #d0d0d0">sys.exit()</span>');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">try</span><span style="color: #d0d0d0">:</span>');document.writeln('    <span style="color: #d0d0d0">twitter=twitter.Api(TWITTER_USERNAME,TWITTER_PASSWORD)</span>');document.writeln('<span style="color: #6ab825; font-weight: normal">except</span> <span style="color: #bbbbbb">Exception</span><span style="color: #d0d0d0">,e:</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #d0d0d0">e</span>');document.writeln('    <span style="color: #d0d0d0">sys.exit()</span>');document.writeln('');document.writeln('<span style="color: #6ab825; font-weight: normal">for</span> <span style="color: #d0d0d0">message</span> <span style="color: #6ab825; font-weight: normal">in</span> <span style="color: #d0d0d0">msg_ids[</span><span style="color: #3677a9">0</span><span style="color: #d0d0d0">].split(</span><span style="color: #ed9d13">&#39; &#39;</span><span style="color: #d0d0d0">):</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">if</span> <span style="color: #d0d0d0">message</span> <span style="color: #d0d0d0">==</span> <span style="color: #ed9d13">&#39;&#39;</span><span style="color: #d0d0d0">:</span>');document.writeln('        <span style="color: #d0d0d0">sys.exit()</span>');document.writeln('    <span style="color: #d0d0d0">(ret,</span> <span style="color: #d0d0d0">mesginfo)</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">mail.fetch(message,</span> <span style="color: #ed9d13">&#39;(BODY.PEEK[HEADER] FLAGS)&#39;</span><span style="color: #d0d0d0">)</span> <span style="color: #999999; font-style: italic">#retrieving only headers and flags</span>');document.writeln('    <span style="color: #6ab825; font-weight: normal">if</span> <span style="color: #d0d0d0">ret</span> <span style="color: #d0d0d0">==</span> <span style="color: #ed9d13">&#39;OK&#39;</span><span style="color: #d0d0d0">:</span>');document.writeln('        <span style="color: #d0d0d0">headers</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">mesginfo[</span><span style="color: #3677a9">0</span><span style="color: #d0d0d0">][</span><span style="color: #3677a9">1</span><span style="color: #d0d0d0">]</span>');document.writeln('        <span style="color: #d0d0d0">twitter_sender</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">re.findall(</span><span style="color: #ed9d13">r&quot;X-Twittersenderscreenname: (\w+)&quot;</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">headers,re.M)[</span><span style="color: #3677a9">0</span><span style="color: #d0d0d0">].strip(</span><span style="color: #ed9d13">&#39; &#39;</span><span style="color: #d0d0d0">)</span>');document.writeln('        <span style="color: #d0d0d0">twitter_sender_id</span> <span style="color: #d0d0d0">=</span> <span style="color: #d0d0d0">re.findall(</span><span style="color: #ed9d13">r&quot;X-Twittersenderid: (\w+)&quot;</span><span style="color: #d0d0d0">,</span> <span style="color: #d0d0d0">headers,re.M)[</span><span style="color: #3677a9">0</span><span style="color: #d0d0d0">].strip(</span><span style="color: #ed9d13">&#39; &#39;</span><span style="color: #d0d0d0">)</span>');document.writeln('        <span style="color: #d0d0d0">friendship_created</span> <span style="color: #d0d0d0">=</span> <span style="color: #24909d">False</span>');document.writeln('        <span style="color: #6ab825; font-weight: normal">try</span><span style="color: #d0d0d0">:</span>');document.writeln('            <span style="color: #d0d0d0">twitter.CreateFriendship(twitter_sender)</span>');document.writeln('            <span style="color: #d0d0d0">friendship_created</span> <span style="color: #d0d0d0">=</span> <span style="color: #24909d">True</span>');document.writeln('        <span style="color: #6ab825; font-weight: normal">except</span> <span style="color: #bbbbbb">Exception</span><span style="color: #d0d0d0">:</span>');document.writeln('            <span style="color: #6ab825; font-weight: normal">if</span> <span style="color: #d0d0d0">re.search(</span><span style="color: #ed9d13">&#39;Error 403&#39;</span><span style="color: #d0d0d0">,</span> <span style="color: #24909d">str</span><span style="color: #d0d0d0">(sys.exc_value),</span> <span style="color: #d0d0d0">re.I):</span>');document.writeln('                <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #ed9d13">&quot;You already follow %s&quot;</span> <span style="color: #d0d0d0">%</span> <span style="color: #d0d0d0">twitter_sender.encode(</span> <span style="color: #ed9d13">&#39;utf-8&#39;</span> <span style="color: #d0d0d0">)</span>');document.writeln('            <span style="color: #6ab825; font-weight: normal">else</span><span style="color: #d0d0d0">:</span>');document.writeln('                <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #ed9d13">&quot;Critical error occured while adding %s as friend %s&quot;</span> <span style="color: #d0d0d0">%</span> <span style="color: #d0d0d0">(</span> <span style="color: #d0d0d0">twitter_sender.encode(</span> <span style="color: #ed9d13">&#39;utf-8&#39;</span> <span style="color: #d0d0d0">),sys.exc_value</span> <span style="color: #d0d0d0">)</span>');document.writeln('                <span style="color: #d0d0d0">sys.exit()</span>');document.writeln('        <span style="color: #6ab825; font-weight: normal">try</span><span style="color: #d0d0d0">:</span>');document.writeln('            <span style="color: #d0d0d0">twitter.PostDirectMessage(twitter_sender,</span> <span style="color: #d0d0d0">TWITTER_DM)</span>');document.writeln('            <span style="color: #d0d0d0">mail.store(message,</span> <span style="color: #ed9d13">&#39;+FLAGS&#39;</span><span style="color: #d0d0d0">,</span> <span style="color: #ed9d13">r&#39;(\Seen)&#39;</span><span style="color: #d0d0d0">)</span>');document.writeln('            <span style="color: #6ab825; font-weight: normal">if</span> <span style="color: #d0d0d0">friendship_created</span> <span style="color: #6ab825; font-weight: normal">is</span> <span style="color: #24909d">True</span><span style="color: #d0d0d0">:</span>');document.writeln('                <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #ed9d13">&quot;%s FOLLOW and DM&quot;</span> <span style="color: #d0d0d0">%</span> <span style="color: #d0d0d0">twitter_sender.encode(</span> <span style="color: #ed9d13">&#39;utf-8&#39;</span> <span style="color: #d0d0d0">)</span>');document.writeln('            <span style="color: #6ab825; font-weight: normal">else</span><span style="color: #d0d0d0">:</span>');document.writeln('                <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #ed9d13">&quot;%s NOT FOLLOWING only DM&quot;</span> <span style="color: #d0d0d0">%</span> <span style="color: #d0d0d0">twitter_sender.encode(</span> <span style="color: #ed9d13">&#39;utf-8&#39;</span> <span style="color: #d0d0d0">)</span>');document.writeln('        <span style="color: #6ab825; font-weight: normal">except</span><span style="color: #d0d0d0">:</span>');document.writeln('            <span style="color: #6ab825; font-weight: normal">print</span> <span style="color: #ed9d13">&quot;Critical error could not DM %s %s&quot;</span> <span style="color: #d0d0d0">%</span> <span style="color: #d0d0d0">(</span> <span style="color: #d0d0d0">twitter_sender.encode(</span> <span style="color: #ed9d13">&#39;utf-8&#39;</span> <span style="color: #d0d0d0">),sys.exc_value</span> <span style="color: #d0d0d0">)</span>');document.writeln('');document.writeln('<span style="color: #d0d0d0">mail.close()</span>');document.writeln('</pre></div>');document.writeln('');document.writeln('<div style="background-color: #111; color: #D0D0D0; float: right; padding: 5px 10px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; font: 11px Arial,Sans-Serif; display: none; position: absolute; bottom: 0; right: 0;" id="snipt-4675">code hosted by <a href="http://snipt.net/raduboncea/autofollow-and-dm-twitter-using-imap-on-gmail" style="color: #0084FF; text-decoration: none;">snipt.net</a></div>');document.writeln('</div>');document.close();