|
11 | 11 | <windowRight>1500</windowRight> |
12 | 12 | </head> |
13 | 13 | <body text="storage.js"> |
14 | | - <outline created="Mon, 03 Feb 2014 03:21:03 GMT" pgfnum="36831" text="var myVersion = "0.9.10", myProductName = "nodeStorage"; "></outline> |
| 14 | + <outline created="Mon, 03 Feb 2014 03:21:03 GMT" pgfnum="36831" text="var myVersion = "0.9.11", myProductName = "nodeStorage"; "></outline> |
15 | 15 | <outline text=""></outline> |
16 | 16 | <outline text="/* The MIT License (MIT) "> |
17 | 17 | <outline text=""></outline> |
|
58 | 58 | <outline text="var os = require ("os");"></outline> |
59 | 59 | <outline text="var qs = require ("querystring"); //4/28/16 by DW"></outline> |
60 | 60 | <outline text="var filesystem = require ("davefilesystem"); //3/2/20 by DW"></outline> |
| 61 | + <outline text="var zip = require ("davezip"); //4/13/20 by DW"></outline> |
61 | 62 | <outline created="Tue, 15 Apr 2014 20:32:04 GMT" pgfnum="40038" text=""></outline> |
62 | 63 | <outline text="//environment variables"> |
63 | 64 | <outline created="Sat, 01 Feb 2014 18:42:45 GMT" pgfnum="36699" text="var myPort = process.env.PORT;"></outline> |
|
697 | 698 | <outline text="var maxLogLengthForClient = 50; //we won't return more than this number of log items to the client"></outline> |
698 | 699 | <outline text="var flChatLogDirty = false, nameDirtyChatLog;"></outline> |
699 | 700 | <outline text="var chatLogArray = new Array (); //10/26/15 by DW"></outline> |
700 | | - <outline text=""></outline> |
| 701 | + <outline isComment="true" text=""></outline> |
701 | 702 | <outline isComment="true" text="what's in a chatLogArray element?"> |
702 | 703 | <outline text="chatLog: array (one element for each top-level item in the log)"></outline> |
703 | 704 | <outline text="prefs: struct (info about the chatlog, including <i>serialNum</i> for the ID of the next item added)"></outline> |
|
807 | 808 | </outline> |
808 | 809 | </outline> |
809 | 810 | <outline text=""></outline> |
810 | | - <outline text=""></outline> |
811 | 811 | <outline text="function initChatLogStats (name) { //1/20/16 by DW"> |
812 | 812 | <outline text="if (serverStats.chatLogStats.logStats [name] === undefined) {"> |
813 | 813 | <outline text="serverStats.chatLogStats.logStats [name] = {"> |
|
1675 | 1675 | <outline text="return (undefined); //didn't find the item"></outline> |
1676 | 1676 | <outline text="}"></outline> |
1677 | 1677 | </outline> |
1678 | | - <outline text=""></outline> |
1679 | | - <outline text=""></outline> |
1680 | 1678 | <outline text="function getMonthChatLogPosts (nameChatLog, monthnum, yearnum) { //5/31/16 by DW"> |
1681 | 1679 | <outline text="var theLog = findChatLog (nameChatLog), jstruct = new Array ();"></outline> |
1682 | 1680 | <outline text="if (theLog === undefined) {"> |
|
1703 | 1701 | <outline text="return (jstruct);"></outline> |
1704 | 1702 | <outline text="}"></outline> |
1705 | 1703 | </outline> |
1706 | | - <outline text=""></outline> |
1707 | | - <outline text=""></outline> |
1708 | 1704 | <outline text="function getChatLogIndex (nameChatLog) { //1/2/16 by DW"> |
1709 | 1705 | <outline isComment="true" text="Changes"> |
1710 | 1706 | <outline text="5/6/16; 11:16:50 AM by DW"> |
|
2327 | 2323 | </outline> |
2328 | 2324 | <outline text="}"></outline> |
2329 | 2325 | </outline> |
2330 | | - <outline text=""></outline> |
2331 | | - <outline text=""></outline> |
2332 | 2326 | </outline> |
2333 | 2327 | <outline text="//webhooks -- 8/28/15 by DW"> |
2334 | 2328 | <outline text="var webhooks = {"> |
|
3259 | 3253 | <outline text="}"></outline> |
3260 | 3254 | </outline> |
3261 | 3255 | </outline> |
| 3256 | + <outline text="//zip archive of user data -- 4/13/20 by DW"> |
| 3257 | + <outline text="function getUserData (screenName, callback) { //4/14/20 by DW"> |
| 3258 | + <outline text="if (flLocalFilesystem) {"> |
| 3259 | + <outline text="const tmpfolder = "tmp/", archivefile = tmpfolder + screenName + ".zip"; "></outline> |
| 3260 | + <outline text="utils.sureFilePath (archivefile, function () {"> |
| 3261 | + <outline text="var theArchive = zip.createArchive (archivefile, function (err, data) {"> |
| 3262 | + <outline text="if (callback !== undefined) {"> |
| 3263 | + <outline text="callback (err, archivefile);"></outline> |
| 3264 | + <outline text="}"></outline> |
| 3265 | + </outline> |
| 3266 | + <outline text="});"></outline> |
| 3267 | + </outline> |
| 3268 | + <outline text="var pathPublicFiles = s3Path + "users/" + screenName + "/";"></outline> |
| 3269 | + <outline text="var pathPrivateFiles = s3PrivatePath + "users/" + screenName + "/";"></outline> |
| 3270 | + <outline isComment="true" text="console.log ("archiveUser: pathPublicFiles == " + pathPublicFiles);"></outline> |
| 3271 | + <outline text="theArchive.addDirectoryToArchive (pathPublicFiles, "Public Files");"></outline> |
| 3272 | + <outline text="theArchive.addDirectoryToArchive (pathPrivateFiles, "Private Files");"></outline> |
| 3273 | + <outline text="theArchive.finalize ();"></outline> |
| 3274 | + <outline text="});"></outline> |
| 3275 | + </outline> |
| 3276 | + <outline text="}"></outline> |
| 3277 | + </outline> |
| 3278 | + <outline text="else {"> |
| 3279 | + <outline text="callback ({message: "Can't return the user's files because the server isn't using a local file system."});"></outline> |
| 3280 | + <outline text="}"></outline> |
| 3281 | + </outline> |
| 3282 | + <outline text="}"></outline> |
| 3283 | + </outline> |
| 3284 | + </outline> |
3262 | 3285 | <outline text=""></outline> |
3263 | 3286 | <outline text="function everyMinute () {"> |
3264 | 3287 | <outline text="var now = new Date ();"></outline> |
|
3499 | 3522 | <outline text="httpResponse.end (utils.jsonStringify (data)); "></outline> |
3500 | 3523 | <outline created="Sat, 21 Jun 2014 14:43:44 GMT" pgfnum="42368" text="}"></outline> |
3501 | 3524 | </outline> |
3502 | | - <outline text=""></outline> |
| 3525 | + <outline text="function returnZipFile (f) { //4/13/20 by DW"> |
| 3526 | + <outline text="fs.readFile (f, function (err, data) {"> |
| 3527 | + <outline text="if (err) {"> |
| 3528 | + <outline text="errorResponse (err);"></outline> |
| 3529 | + <outline text="}"></outline> |
| 3530 | + </outline> |
| 3531 | + <outline text="else {"> |
| 3532 | + <outline text="doHttpReturn (200, "application/zip", data);"></outline> |
| 3533 | + <outline text="}"></outline> |
| 3534 | + </outline> |
| 3535 | + <outline text="});"></outline> |
| 3536 | + </outline> |
| 3537 | + <outline text="}"></outline> |
| 3538 | + </outline> |
3503 | 3539 | <outline text="function requestHomeFile (lowerpath, callback) { //3/19/16 by DW"> |
3504 | 3540 | <outline text="if (urlHomePageContent === undefined) {"> |
3505 | 3541 | <outline text="callback ({message: "Can't get the file because the server isn't configured for it."});"></outline> |
|
4967 | 5003 | </outline> |
4968 | 5004 | <outline text="break;"></outline> |
4969 | 5005 | </outline> |
4970 | | - <outline text=""></outline> |
4971 | 5006 | <outline text="case "/chat.css": //3/19/16 by DW"> |
4972 | 5007 | <outline text="requestHomeFile (lowerpath, function (err, data) {"> |
4973 | 5008 | <outline created="Mon, 21 Apr 2014 23:12:55 GMT" pgfnum="40408" text="if (err) {"> |
|
5049 | 5084 | </outline> |
5050 | 5085 | <outline created="Wed, 22 Jan 2014 15:18:30 GMT" pgfnum="36266" text="break;"></outline> |
5051 | 5086 | </outline> |
5052 | | - <outline text=""></outline> |
5053 | 5087 | <outline text="case "/getmonthchatmessages": //5/31/16 by DW"> |
5054 | 5088 | <outline text="var monthnum = parsedUrl.query.monthnum;"></outline> |
5055 | 5089 | <outline text="var yearnum = parsedUrl.query.yearnum;"></outline> |
|
5069 | 5103 | <outline text=""></outline> |
5070 | 5104 | <outline text="break;"></outline> |
5071 | 5105 | </outline> |
5072 | | - <outline text=""></outline> |
| 5106 | + <outline text="case "/myfiles": //4/14/20 by DW"> |
| 5107 | + <outline created="Wed, 09 Jul 2014 23:57:16 GMT" pgfnum="42784" text="getScreenName (parsedUrl.query.oauth_token, parsedUrl.query.oauth_token_secret, function (screenName) {"> |
| 5108 | + <outline created="Thu, 10 Jul 2014 00:53:00 GMT" pgfnum="42793" text="if (screenName === undefined) {"> |
| 5109 | + <outline text="errorResponse ({message: "Can't get the user's data because the access token is not valid."}); "></outline> |
| 5110 | + <outline created="Thu, 10 Jul 2014 00:53:11 GMT" pgfnum="42797" text="}"></outline> |
| 5111 | + </outline> |
| 5112 | + <outline created="Thu, 10 Jul 2014 00:53:12 GMT" pgfnum="42798" text="else {"> |
| 5113 | + <outline text="getUserData (screenName, function (err, zipfile) {"> |
| 5114 | + <outline text="if (err) {"> |
| 5115 | + <outline text="errorResponse (err);"></outline> |
| 5116 | + <outline text="}"></outline> |
| 5117 | + </outline> |
| 5118 | + <outline text="else {"> |
| 5119 | + <outline text="returnZipFile (zipfile);"></outline> |
| 5120 | + <outline text="}"></outline> |
| 5121 | + </outline> |
| 5122 | + <outline text="});"></outline> |
| 5123 | + </outline> |
| 5124 | + <outline created="Thu, 10 Jul 2014 00:53:14 GMT" pgfnum="42799" text="}"></outline> |
| 5125 | + </outline> |
| 5126 | + <outline created="Wed, 09 Jul 2014 23:57:25 GMT" pgfnum="42785" text="});"></outline> |
| 5127 | + </outline> |
| 5128 | + <outline text="break;"></outline> |
| 5129 | + </outline> |
5073 | 5130 | <outline isComment="true" text="case "/test1": //10/27/15 by DW"> |
5074 | 5131 | <outline text="postChatMessage ("davewiner", "blork", "Oh the buzzing of the bees", undefined, undefined, undefined, undefined, true, function (err, idMessage) {"> |
5075 | 5132 | <outline text="if (err) {"> |
|
0 commit comments