{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# upcoming2posts\n", "\n", "By Stuart Geiger (@staeiou), MIT license\n", "\n", "This is a script you run the day after THW, which changes yesterday's file from \"upcoming\" to \"posts\" so that the next week's topic shows on the main page." ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Already up-to-date.\r\n" ] } ], "source": [ "!git pull" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import datetime\n", "from datetime import timedelta\n", "import os\n", "import glob\n", "import re" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [], "source": [ "today = datetime.date.today()\n", "yesterday = today - timedelta(1)\n" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": true }, "outputs": [], "source": [ "if yesterday.isoweekday() == 2:\n", " yesterday_str = yesterday.strftime(\"%Y-%m-%d\")\n", " " ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [], "source": [ "filename = glob.glob(\"_posts/\" + yesterday_str + \"*\")[0]" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'---\\nlayout: post\\ntitle: Spring Break -- no meeting\\ncomments: true\\ncategory: upcoming\\ntags: meeting <+ tags +>\\n---\\n\\n\\n'" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with open(filename, \"r\") as file:\n", " file_text = file.read()\n", "file_text" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'---\\nlayout: post\\ntitle: Spring Break -- no meeting\\ncomments: true\\ncategory: posts\\ntags: meeting <+ tags +>\\n---\\n\\n\\n'" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "file_text = file_text.replace('category: upcoming', 'category: posts')\n", "file_text = file_text.replace('category:upcoming', 'category: posts')\n", "file_text" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": true }, "outputs": [], "source": [ "with open(filename, \"w\") as file:\n", " file.write(file_text)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[master fa90fef] upcoming to posts [automated]\r\n", " 1 file changed, 1 insertion(+), 1 deletion(-)\r\n" ] } ], "source": [ "!git commit -a -m \"upcoming to posts [automated]\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# note that you have to have credentials set up to push from a notebook, otherwise you do it manually\n", "!git push" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.2" } }, "nbformat": 4, "nbformat_minor": 2 }