Update files to have upload date...
This commit is contained in:
parent
01b7ad9481
commit
7aea5a869d
11
src/files.c
11
src/files.c
@ -10,6 +10,7 @@
|
|||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <time.h>
|
||||||
#include "Xmodem/zmodem.h"
|
#include "Xmodem/zmodem.h"
|
||||||
#include "bbs.h"
|
#include "bbs.h"
|
||||||
#include "lua/lua.h"
|
#include "lua/lua.h"
|
||||||
@ -610,15 +611,16 @@ void upload(struct user_record *user) {
|
|||||||
"description TEXT,"
|
"description TEXT,"
|
||||||
"size INTEGER,"
|
"size INTEGER,"
|
||||||
"dlcount INTEGER,"
|
"dlcount INTEGER,"
|
||||||
|
"uploaddate INTEGER,"
|
||||||
"approved INTEGER);";
|
"approved INTEGER);";
|
||||||
char *sql = "INSERT INTO files (filename, description, size, dlcount, approved) VALUES(?, ?, ?, 0, 0)";
|
char *sql = "INSERT INTO files (filename, description, size, dlcount, approved, uploaddate) VALUES(?, ?, ?, 0, 0, ?)";
|
||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
sqlite3_stmt *res;
|
sqlite3_stmt *res;
|
||||||
int rc;
|
int rc;
|
||||||
struct stat s;
|
struct stat s;
|
||||||
char *err_msg = NULL;
|
char *err_msg = NULL;
|
||||||
char *description;
|
char *description;
|
||||||
|
time_t curtime;
|
||||||
|
|
||||||
if (!do_upload(user, conf.file_directories[user->cur_file_dir]->file_subs[user->cur_file_sub]->upload_path)) {
|
if (!do_upload(user, conf.file_directories[user->cur_file_dir]->file_subs[user->cur_file_sub]->upload_path)) {
|
||||||
s_printf(get_string(211));
|
s_printf(get_string(211));
|
||||||
@ -679,6 +681,8 @@ void upload(struct user_record *user) {
|
|||||||
sqlite3_bind_text(res, 2, description, -1, 0);
|
sqlite3_bind_text(res, 2, description, -1, 0);
|
||||||
}
|
}
|
||||||
sqlite3_bind_int(res, 3, s.st_size);
|
sqlite3_bind_int(res, 3, s.st_size);
|
||||||
|
curtime = time(NULL);
|
||||||
|
sqlite3_bind_int(res, 4, curtime);
|
||||||
} else {
|
} else {
|
||||||
dolog("Failed to execute statement: %s", sqlite3_errmsg(db));
|
dolog("Failed to execute statement: %s", sqlite3_errmsg(db));
|
||||||
sqlite3_finalize(res);
|
sqlite3_finalize(res);
|
||||||
@ -974,7 +978,8 @@ void list_files(struct user_record *user) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
if (strlen(&(files_e[i]->description[j])) > 1) {
|
||||||
s_printf(get_string(74));
|
s_printf(get_string(74));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -31,7 +31,8 @@ my $stmt = qq(CREATE TABLE IF NOT EXISTS files (
|
|||||||
description TEXT,
|
description TEXT,
|
||||||
size INTEGER,
|
size INTEGER,
|
||||||
dlcount INTEGER,
|
dlcount INTEGER,
|
||||||
approved INTEGER););
|
approved INTEGER,
|
||||||
|
uploaddate INTEGER););
|
||||||
my $rv = $dbh->do($stmt);
|
my $rv = $dbh->do($stmt);
|
||||||
|
|
||||||
my $string;
|
my $string;
|
||||||
@ -81,8 +82,9 @@ foreach my $fp (glob("$dir/*")) {
|
|||||||
print(" not zip file.\n");
|
print(" not zip file.\n");
|
||||||
}
|
}
|
||||||
my $size = -s $fp;
|
my $size = -s $fp;
|
||||||
$sth = $dbh->prepare('INSERT INTO files (filename, description, size, dlcount, approved) VALUES($1, $2, $3, 0, 1)');
|
my $curtime = time();
|
||||||
$sth->execute($fp, $string, $size);
|
$sth = $dbh->prepare('INSERT INTO files (filename, description, size, dlcount, approved, uploaddate) VALUES($1, $2, $3, 0, 1, $4)');
|
||||||
|
$sth->execute($fp, $string, $size, $curtime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
58
utils/sql_update/files_sql_update.pl
Executable file
58
utils/sql_update/files_sql_update.pl
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
|
use DBI;
|
||||||
|
|
||||||
|
if (@ARGV < 1) {
|
||||||
|
print "Usage: ./files_sql_update dbfile.sq3\n";
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
my $dbfile = $ARGV[0];
|
||||||
|
|
||||||
|
sub check_exists {
|
||||||
|
my ($needed) = @_;
|
||||||
|
|
||||||
|
my $dsn = "dbi:SQLite:dbname=$dbfile";
|
||||||
|
my $user = "";
|
||||||
|
my $password = "";
|
||||||
|
my $dbh = DBI->connect($dsn, $user, $password, {
|
||||||
|
PrintError => 0,
|
||||||
|
RaiseError => 1,
|
||||||
|
AutoCommit => 1,
|
||||||
|
FetchHashKeyName => 'NAME_lc',
|
||||||
|
});
|
||||||
|
|
||||||
|
my $sql = "PRAGMA table_info(users)";
|
||||||
|
my $sth = $dbh->prepare($sql);
|
||||||
|
|
||||||
|
my $gotneeded;
|
||||||
|
|
||||||
|
$sth->execute();
|
||||||
|
while (my @row = $sth->fetchrow_array) {
|
||||||
|
if ($row[1] eq $needed) {
|
||||||
|
$gotneeded = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$dbh->disconnect;
|
||||||
|
return $gotneeded;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (check_exists("uploaddate") == 0) {
|
||||||
|
print "Column \"uploaddate\" doesn't exist... adding..\n";
|
||||||
|
|
||||||
|
my ($needed) = @_;
|
||||||
|
|
||||||
|
my $dsn = "dbi:SQLite:dbname=$dbfile";
|
||||||
|
my $user = "";
|
||||||
|
my $password = "";
|
||||||
|
my $dbh = DBI->connect($dsn, $user, $password, {
|
||||||
|
PrintError => 0,
|
||||||
|
RaiseError => 1,
|
||||||
|
AutoCommit => 1,
|
||||||
|
FetchHashKeyName => 'NAME_lc',
|
||||||
|
});
|
||||||
|
|
||||||
|
my $sql = "ALTER TABLE files ADD COLUMN uploaddate INTEGER DEFAULT 0";
|
||||||
|
$dbh->do($sql);
|
||||||
|
$dbh->disconnect;
|
||||||
|
}
|
@ -6,6 +6,7 @@
|
|||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#include <time.h>
|
||||||
#include "../../src/inih/ini.h"
|
#include "../../src/inih/ini.h"
|
||||||
#include "ticproc.h"
|
#include "ticproc.h"
|
||||||
#include "crc32.h"
|
#include "crc32.h"
|
||||||
@ -111,10 +112,11 @@ int add_file(struct ticfile_t *ticfile) {
|
|||||||
"description TEXT,"
|
"description TEXT,"
|
||||||
"size INTEGER,"
|
"size INTEGER,"
|
||||||
"dlcount INTEGER,"
|
"dlcount INTEGER,"
|
||||||
"approved INTEGER);";
|
"approved INTEGER,"
|
||||||
|
"uploaddate INTEGER);";
|
||||||
char fetch_sql[] = "SELECT Id, filename FROM files";
|
char fetch_sql[] = "SELECT Id, filename FROM files";
|
||||||
char delete_sql[] = "DELETE FROM files WHERE Id=?";
|
char delete_sql[] = "DELETE FROM files WHERE Id=?";
|
||||||
char insert_sql[] = "INSERT INTO files (filename, description, size, dlcount, approved) VALUES(?, ?, ?, 0, 1)";
|
char insert_sql[] = "INSERT INTO files (filename, description, size, dlcount, approved, uploaddate) VALUES(?, ?, ?, 0, 1, ?)";
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
char *fname;
|
char *fname;
|
||||||
@ -125,6 +127,7 @@ int add_file(struct ticfile_t *ticfile) {
|
|||||||
char *err_msg = 0;
|
char *err_msg = 0;
|
||||||
int len;
|
int len;
|
||||||
unsigned long crc;
|
unsigned long crc;
|
||||||
|
time_t curtime;
|
||||||
|
|
||||||
if (ticfile->area == NULL) {
|
if (ticfile->area == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -295,10 +298,11 @@ int add_file(struct ticfile_t *ticfile) {
|
|||||||
free(fname);
|
free(fname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
curtime = time(NULL);
|
||||||
sqlite3_bind_text(res, 1, dest_filename, -1, 0);
|
sqlite3_bind_text(res, 1, dest_filename, -1, 0);
|
||||||
sqlite3_bind_text(res, 2, description, -1, 0);
|
sqlite3_bind_text(res, 2, description, -1, 0);
|
||||||
sqlite3_bind_int(res, 3, s.st_size);
|
sqlite3_bind_int(res, 3, s.st_size);
|
||||||
|
sqlite3_bind_int(res, 4, curtime);
|
||||||
sqlite3_step(res);
|
sqlite3_step(res);
|
||||||
sqlite3_finalize(res);
|
sqlite3_finalize(res);
|
||||||
sqlite3_close(db);
|
sqlite3_close(db);
|
||||||
|
Reference in New Issue
Block a user