Merge pull request 'Added 'BlogEdit'' (#31) from 4-blogedit into master
Reviewed-on: #31
This commit is contained in:
commit
d1fa7b26bd
57
BlogDB.c
57
BlogDB.c
|
|
@ -12,8 +12,9 @@ static MYSQL* conn2maria();
|
||||||
static int AddPost(char title[], int authorId, char datePosted[], char post[], int tags[], size_t tagSize, MYSQL* con);
|
static int AddPost(char title[], int authorId, char datePosted[], char post[], int tags[], size_t tagSize, MYSQL* con);
|
||||||
static int EditPost(int postID, char title[], char post[], MYSQL* con);
|
static int EditPost(int postID, char title[], char post[], MYSQL* con);
|
||||||
static int AddFilePost(int authorID, char filePath[], MYSQL* con);
|
static int AddFilePost(int authorID, char filePath[], MYSQL* con);
|
||||||
static int EditFilePost(int authorID, char filePath[], int postID, MYSQL* con);
|
static int EditFilePost(char filePath[], int postID, MYSQL* con);
|
||||||
static int BlogWrite(MYSQL* con);
|
static int BlogWrite(MYSQL* con);
|
||||||
|
static int BlogEdit(int postID, MYSQL* con);
|
||||||
static int PullPostData(char* strings[6], int postID, MYSQL* con);
|
static int PullPostData(char* strings[6], int postID, MYSQL* con);
|
||||||
static int PullPostDescriptions(int** IDs, char* Titles[255], int** authors, int** dates, MYSQL* con);
|
static int PullPostDescriptions(int** IDs, char* Titles[255], int** authors, int** dates, MYSQL* con);
|
||||||
static int AddTag(char tagTitle[], MYSQL* con);
|
static int AddTag(char tagTitle[], MYSQL* con);
|
||||||
|
|
@ -208,7 +209,7 @@ int AddFilePost(int authorID, char filePath[], MYSQL* con)
|
||||||
|
|
||||||
// Define a file and buffer
|
// Define a file and buffer
|
||||||
FILE* FilePointer;
|
FILE* FilePointer;
|
||||||
int BufferLength = 255;
|
int BufferLength = 8192;
|
||||||
char Buffer[BufferLength];
|
char Buffer[BufferLength];
|
||||||
char StringEnd[] = "\0";
|
char StringEnd[] = "\0";
|
||||||
|
|
||||||
|
|
@ -221,8 +222,8 @@ int AddFilePost(int authorID, char filePath[], MYSQL* con)
|
||||||
// Get the substrings Buffer[0:3] and Buffer[-6:-1]
|
// Get the substrings Buffer[0:3] and Buffer[-6:-1]
|
||||||
// Buffer[BufferLength] is the same as "\0" but without warnings
|
// Buffer[BufferLength] is the same as "\0" but without warnings
|
||||||
int LineLength = strlen(Buffer);
|
int LineLength = strlen(Buffer);
|
||||||
char startTest[5] = {Buffer[0], Buffer[1], Buffer[2], Buffer[3], Buffer[BufferLength]};
|
char startTest[5] = {Buffer[0], Buffer[1], Buffer[2], Buffer[3], StringEnd[1]};
|
||||||
char endTest[6] = {Buffer[LineLength - 6], Buffer[LineLength - 5], Buffer[LineLength - 4], Buffer[LineLength - 3], Buffer[LineLength - 2], Buffer[BufferLength]};
|
char endTest[6] = {Buffer[LineLength - 6], Buffer[LineLength - 5], Buffer[LineLength - 4], Buffer[LineLength - 3], Buffer[LineLength - 2], StringEnd[1]};
|
||||||
|
|
||||||
// Check that the firstline starts with "<h3>" and ends with "</h3>"
|
// Check that the firstline starts with "<h3>" and ends with "</h3>"
|
||||||
if (!(strcmp(startTest, "<h3>") == 0 && strcmp(endTest, "</h3>") == 0)) {
|
if (!(strcmp(startTest, "<h3>") == 0 && strcmp(endTest, "</h3>") == 0)) {
|
||||||
|
|
@ -274,7 +275,7 @@ int AddFilePost(int authorID, char filePath[], MYSQL* con)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edits a post using file data
|
// Edits a post using file data
|
||||||
int EditFilePost(int authorID, char filePath[], int postID, MYSQL* con)
|
int EditFilePost(char filePath[], int postID, MYSQL* con)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (con == NULL)
|
if (con == NULL)
|
||||||
|
|
@ -282,15 +283,9 @@ int EditFilePost(int authorID, char filePath[], int postID, MYSQL* con)
|
||||||
con = conn2maria();
|
con = conn2maria();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Author ID <= 0 should default to me.
|
|
||||||
if (authorID <= 0)
|
|
||||||
{
|
|
||||||
authorID = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define a file and buffer
|
// Define a file and buffer
|
||||||
FILE* FilePointer;
|
FILE* FilePointer;
|
||||||
int BufferLength = 255;
|
int BufferLength = 8192;
|
||||||
char Buffer[BufferLength];
|
char Buffer[BufferLength];
|
||||||
char StringEnd[] = "\0";
|
char StringEnd[] = "\0";
|
||||||
|
|
||||||
|
|
@ -303,12 +298,12 @@ int EditFilePost(int authorID, char filePath[], int postID, MYSQL* con)
|
||||||
// Get the substrings Buffer[0:3] and Buffer[-6:-1]
|
// Get the substrings Buffer[0:3] and Buffer[-6:-1]
|
||||||
// Buffer[BufferLength] is the same as "\0" but without warnings
|
// Buffer[BufferLength] is the same as "\0" but without warnings
|
||||||
int LineLength = strlen(Buffer);
|
int LineLength = strlen(Buffer);
|
||||||
char startTest[5] = {Buffer[0], Buffer[1], Buffer[2], Buffer[3], Buffer[BufferLength]};
|
char startTest[5] = {Buffer[0], Buffer[1], Buffer[2], Buffer[3], StringEnd[1]};
|
||||||
char endTest[6] = {Buffer[LineLength - 6], Buffer[LineLength - 5], Buffer[LineLength - 4], Buffer[LineLength - 3], Buffer[LineLength - 2], Buffer[BufferLength]};
|
char endTest[6] = {Buffer[LineLength - 6], Buffer[LineLength - 5], Buffer[LineLength - 4], Buffer[LineLength - 3], Buffer[LineLength - 2], StringEnd[1]};
|
||||||
|
|
||||||
// Check that the firstline starts with "<h3>" and ends with "</h3>"
|
// Check that the firstline starts with "<h3>" and ends with "</h3>"
|
||||||
if (!(strcmp(startTest, "<h3>") == 0 && strcmp(endTest, "</h3>") == 0)) {
|
if (!(strcmp(startTest, "<h3>") == 0 && strcmp(endTest, "</h3>") == 0)) {
|
||||||
printf("%s What is this %s\n", startTest, endTest);
|
printf("'%s' '%s'\n", startTest, endTest);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -334,7 +329,7 @@ int EditFilePost(int authorID, char filePath[], int postID, MYSQL* con)
|
||||||
// Build a query
|
// Build a query
|
||||||
char* query;
|
char* query;
|
||||||
if(0 > asprintf(&query,
|
if(0 > asprintf(&query,
|
||||||
"UPDATE blog_posts SET post = CONCAT(post, \"%s\n\") WHERE id=(%d)",
|
"UPDATE blog_posts SET post = CONCAT(post, \"%s\") WHERE id=(%d)",
|
||||||
Buffer,
|
Buffer,
|
||||||
postID
|
postID
|
||||||
)) exit(1);
|
)) exit(1);
|
||||||
|
|
@ -378,6 +373,33 @@ int BlogWrite(MYSQL* con)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Open a temporary file containing the contents of the given post
|
||||||
|
// and update the contents as a post
|
||||||
|
int BlogEdit(int postID, MYSQL* con)
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
char* tmpName = tmpnam(NULL);
|
||||||
|
|
||||||
|
//fp = tmpfile();
|
||||||
|
|
||||||
|
char *result[6];
|
||||||
|
PullPostData(result, postID, NULL);
|
||||||
|
|
||||||
|
fp = fopen(tmpName, "w+");
|
||||||
|
fprintf(fp, "<h3>%s</h3>\n%s", result[1], result[2]);
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
char* command;
|
||||||
|
if(0 > asprintf(&command, "$EDITOR %s", tmpName)) exit(1);
|
||||||
|
system(command);
|
||||||
|
|
||||||
|
EditFilePost(tmpName, postID, con);
|
||||||
|
|
||||||
|
remove(tmpName);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Pulls a single post's data into the supplied array
|
// Pulls a single post's data into the supplied array
|
||||||
int PullPostData(char* strings[6], int postID, MYSQL* con)
|
int PullPostData(char* strings[6], int postID, MYSQL* con)
|
||||||
{
|
{
|
||||||
|
|
@ -1340,8 +1362,9 @@ int main(int argc, char *argv[])
|
||||||
//TogglePost(81, con);
|
//TogglePost(81, con);
|
||||||
//printf("%s\n", IsEnabled(81, con) ? "True" : "False");
|
//printf("%s\n", IsEnabled(81, con) ? "True" : "False");
|
||||||
//AddFilePost(1, "/home/adam/Documents/html/linuxenv.html", con);
|
//AddFilePost(1, "/home/adam/Documents/html/linuxenv.html", con);
|
||||||
//EditFilePost(1, "/home/adam/Documents/html/linuxenv.html", 42, con);
|
//EditFilePost("/home/adam/Documents/html/linuxenv.html", 69, con);
|
||||||
//BlogWrite(con);
|
//BlogWrite(con);
|
||||||
|
//BlogEdit(69, con);
|
||||||
|
|
||||||
// =================================
|
// =================================
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue