def upload_rtf( db, filename ): """Upload the Real-Time Feed from a given filename. The following sequence of curl requests have the same effect. :: curl -X POST http://localhost:5984/couchdbkit_test/ -H "Content-Type: application/json" -d '{"timestamp":"2012-03-02T16:16:00Z", "status":"new", "doc_type":"Feed"}' The response is:: {"ok":true,"id":"09833a88a1cbb06f64c555d0245f1af3","rev":"1-7750ef2dbce77303f957de17c754852a"} :: curl -X PUT http://localhost:5984/couchdbkit_test/09833a88a1cbb06f64c555d0245f1af3/feed/?rev=1-7750ef2dbce77303f957de17c754852a -H "Content-Type: text/csv" --data-ascii @201203022302.rpt The response is:: {"ok":true,"id":"09833a88a1cbb06f64c555d0245f1af3","rev":"2-748151ff136b0001671fb0fa14eb886d"} """ Feed.set_db(db) feed = Feed( timestamp= datetime.datetime.fromtimestamp(os.path.getmtime(filename)), status = "new", ) feed.save() with open(filename,'r') as source: feed.put_attachment( source, name="feed", content_type="text/csv" ) print( feed, feed._id )
def push_feed( self, timestamp, status='new', feed_file=None ): global db Feed.set_db(db) feed= Feed( timestamp= timestamp, status= status, ) db.save_doc( feed ) if feed_file is not None: feed.put_attachment( feed_file, name="feed", content_type="text/csv" ) return feed
def upload_feed( filename ): """Upload a specific feed file. This depends on a previous invocation of :func:`config` to set the global database variable, :data:`settings.db`. :param filename: a file to read and push. """ Feed.set_db(settings.db) feed= Feed( timestamp= datetime.datetime.fromtimestamp(os.path.getmtime(filename)), status= "new", ) settings.db.save_doc( feed ) with open(filename,'r') as source: feed.put_attachment( source, name="feed", content_type="text/csv" ) return feed