def randomJobTweet(source="BLS"):
    if source == "BLS":
        job = getRandomBLSJobTitle()
    elif source == "CB":
        job = getRandomCBJobTitle()

    image = SimulatorGeneratorImage.getImageFor(
        job,
        safeSearchLevel=config.get("services", "google_safesearch"), 
        referer="http://twitter.com/SimGenerator"
    )
    year = random.randint(config.getint("settings", "minyear"), datetime.date.today().year)
    artFile = "output-%s.png" % datetime.datetime.now().strftime("%Y-%m-%d-%H%M.%f")
    artFile = os.path.join(tempfile.gettempdir(), artFile)
    SimulatorGeneratorImage.createBoxArt(
        job, 
        year, 
        image,
        artFile,
        maxSize=(
            str(twitterGlobalConfig["photo_sizes"]["large"]["w"] - 1),
            str(twitterGlobalConfig["photo_sizes"]["large"]["h"] - 1),
        ),
        deleteInputFile=True
    )
    tweet(titlecase.titlecase(job), year, artFile)
def randomTrendTweet():
    trends = getTrends()
    if len(trends) == 0:
        sys.stderr.write("Couldn't get any trending topics. :-/\n")
        return
    trend = random.choice(trends)
    if trend[0] == "#":
        text = trend[1:]
        text = inflection.titleize(text)
        text = titlecase.titlecase(text)
    else:
        text = trend
    image = SimulatorGeneratorImage.getImageFor(
        text, safeSearchLevel=config.get("services", "google_safesearch"), referer="http://twitter.com/SimGenerator"
    )
    year = random.randint(config.getint("settings", "minyear"), datetime.date.today().year)
    artFile = "output-%s.png" % datetime.datetime.now().strftime("%Y-%m-%d-%H%M.%f")
    artFile = os.path.join(tempfile.gettempdir(), artFile)
    SimulatorGeneratorImage.createBoxArt(
        text,
        year,
        image,
        artFile,
        maxSize=(
            str(twitterGlobalConfig["photo_sizes"]["large"]["w"] - 1),
            str(twitterGlobalConfig["photo_sizes"]["large"]["h"] - 1),
        ),
        deleteInputFile=True,
    )
    tweetString = text
    if trend[0] == "#":
        tweetString = trend + " " + tweetString

    tweet(tweetString, year, artFile)
def randomJobTweet(source="BLS"):
    if source == "BLS":
        job = getRandomBLSJobTitle()
    elif source == "CB":
        job = getRandomCBJobTitle()

    image = SimulatorGeneratorImage.getImageFor(
        job,
        safeSearchLevel=config.get("services", "google_safesearch"),
        referer="http://twitter.com/SimGenerator")
    year = random.randint(config.getint("settings", "minyear"),
                          datetime.date.today().year)
    artFile = "output-%s.png" % datetime.datetime.now().strftime(
        "%Y-%m-%d-%H%M.%f")
    artFile = os.path.join(tempfile.gettempdir(), artFile)
    SimulatorGeneratorImage.createBoxArt(
        job,
        year,
        image,
        artFile,
        maxSize=(
            str(twitterGlobalConfig["photo_sizes"]["large"]["w"] - 1),
            str(twitterGlobalConfig["photo_sizes"]["large"]["h"] - 1),
        ),
        deleteInputFile=True)
    tweet(titlecase.titlecase(job), year, artFile)
def takeSpecificRequest(tweetID=None, data=None):
    if (tweetID != None and type(tweetID) == int):
        persistence.execute("SELECT * FROM queuedRequests WHERE tweet=?", [tweetID])
        req = persistence.fetchone()
        if req == None:
            print "Tweet not queued."
            return
    elif (data != None and type(data) == tuple and len(data) >= 3):
        req = data
    else:
        print type(data)
        sys.stderr.write("Need to pass either tweet ID or data to this function.\n")
        return

    tweetID = req[0]
    job = req[1]
    user = req[2]
    try:
        image = SimulatorGeneratorImage.getImageFor(
            job,
            safeSearchLevel=config.get("services", "google_safesearch"), 
            referer="http://twitter.com/SimGenerator"
        )
        year = random.randint(config.getint("settings", "minyear"), datetime.date.today().year)
        artFile = "output-%s.png" % datetime.datetime.now().strftime("%Y-%m-%d-%H%M.%f")
        artFile = os.path.join(tempfile.gettempdir(), artFile)
        SimulatorGeneratorImage.createBoxArt(
            job, 
            year, 
            image,
            artFile,
            maxSize=(
                str(twitterGlobalConfig["photo_sizes"]["large"]["w"] - 1),
                str(twitterGlobalConfig["photo_sizes"]["large"]["h"] - 1),
            ),
            deleteInputFile=True
        )
        tweet( titlecase.titlecase(job), year, artFile, (user, str(tweetID)) )
    except Exception, e:
        sys.stderr.write("Couldn't respond to request: '%s' from %s in %i\n" % 
            (
                job.encode("utf8"),
                user.encode("utf8"),
                tweetID
            )
        )
        traceback.print_exc(file=sys.stderr)
        persistence.execute("INSERT INTO failedRequests VALUES (?, ?, ?)", 
            [
                tweetID, job, user
            ]
        )
        persistenceConnection.commit()
def takeSpecificRequest(tweetID=None, data=None):
    if (tweetID != None and type(tweetID) == int):
        persistence.execute("SELECT * FROM queuedRequests WHERE tweet=?",
                            [tweetID])
        req = persistence.fetchone()
        if req == None:
            print "Tweet not queued."
            return
    elif (data != None and type(data) == tuple and len(data) >= 3):
        req = data
    else:
        print type(data)
        sys.stderr.write(
            "Need to pass either tweet ID or data to this function.\n")
        return

    tweetID = req[0]
    job = req[1]
    user = req[2]
    try:
        image = SimulatorGeneratorImage.getImageFor(
            job,
            safeSearchLevel=config.get("services", "google_safesearch"),
            referer="http://twitter.com/SimGenerator")
        year = random.randint(config.getint("settings", "minyear"),
                              datetime.date.today().year)
        artFile = "output-%s.png" % datetime.datetime.now().strftime(
            "%Y-%m-%d-%H%M.%f")
        artFile = os.path.join(tempfile.gettempdir(), artFile)
        SimulatorGeneratorImage.createBoxArt(
            job,
            year,
            image,
            artFile,
            maxSize=(
                str(twitterGlobalConfig["photo_sizes"]["large"]["w"] - 1),
                str(twitterGlobalConfig["photo_sizes"]["large"]["h"] - 1),
            ),
            deleteInputFile=True)
        tweet(titlecase.titlecase(job), year, artFile, (user, str(tweetID)))
    except Exception, e:
        sys.stderr.write("Couldn't respond to request: '%s' from %s in %i\n" %
                         (job.encode("utf8"), user.encode("utf8"), tweetID))
        traceback.print_exc(file=sys.stderr)
        persistence.execute("INSERT INTO failedRequests VALUES (?, ?, ?)",
                            [tweetID, job, user])
        persistenceConnection.commit()
def randomTrendTweet():
    trends = getTrends()
    if len(trends) == 0:
        sys.stderr.write("Couldn't get any trending topics. :-/\n")
        return
    trend = random.choice(trends)
    if trend[0] == "#":
        text = trend[1:]
        text = inflection.titleize(text)
        text = titlecase.titlecase(text)
    else:
        text = trend
    image = SimulatorGeneratorImage.getImageFor(
        text,
        safeSearchLevel=config.get("services", "google_safesearch"),
        referer="http://twitter.com/SimGenerator")
    year = random.randint(config.getint("settings", "minyear"),
                          datetime.date.today().year)
    artFile = "output-%s.png" % datetime.datetime.now().strftime(
        "%Y-%m-%d-%H%M.%f")
    artFile = os.path.join(tempfile.gettempdir(), artFile)
    SimulatorGeneratorImage.createBoxArt(
        text,
        year,
        image,
        artFile,
        maxSize=(
            str(twitterGlobalConfig["photo_sizes"]["large"]["w"] - 1),
            str(twitterGlobalConfig["photo_sizes"]["large"]["h"] - 1),
        ),
        deleteInputFile=True)
    tweetString = text
    if trend[0] == "#":
        tweetString = trend + " " + tweetString

    tweet(tweetString, year, artFile)