Rewrite DurationFromExpiry function

This commit is contained in:
Eliot Whalan 2016-07-15 12:12:09 +10:00
parent 20e636620d
commit 5242324a60
4 changed files with 22 additions and 36 deletions

View File

@ -449,23 +449,23 @@
<option value="sls">YAML+Jinja</option> <option value="sls">YAML+Jinja</option>
<option value="zephir">Zephir</option> <option value="zephir">Zephir</option>
</select> </select>
<select id="expiry" name="expiry" class="form-control">
<option value="5 minutes">5 minutes</option>
<option value="1 hour">1 hour</option>
<option value="1 day">1 day</option>
<option value="1 week">1 week</option>
<option value="1 month">1 month</option>
<option value="1 year">1 year</option>
<option value="" selected="selected">Forever</option>
</select>
<select id="expiry" name="expiry" class="form-control">
<option value="1">1 hour</option>
<option value="24">1 day</option>
<option value="24 * 7">1 week</option>
<option value="24 * 30">1 month</option>
<option value="24 * 365">1 year</option>
<option value="24 * (20 * 365)" selected>Forever</option>
</select>
<button type="submit" class="btn btn-raised btn-primary">Submit<div class="ripple-container"></div></button> <button type="submit" class="btn btn-raised btn-primary">Submit<div class="ripple-container"></div></button>
<a href="{{.Home}}" class="btn btn-raised btn-primary">Home</a> <a href="{{.Home}}" class="btn btn-raised btn-primary">Home</a>
<a href="{{.Download}}" class="btn btn-raised btn-primary">Download</a> <a href="{{.Download}}" class="btn btn-raised btn-primary">Download</a>
<a href="{{.Raw}}" class="btn btn-raised btn-primary">Raw</a> <a href="{{.Raw}}" class="btn btn-raised btn-primary">Raw</a>
<a href="{{.Clone}}" class="btn btn-raised btn-primary">Clone</a> <a href="{{.Clone}}" class="btn btn-raised btn-primary">Clone</a>
</div> </div>
</div> </div>
</div> </div>
</fieldset> </fieldset>

View File

@ -450,16 +450,15 @@
</select> </select>
<select id="expiry" name="expiry" class="form-control"> <select id="expiry" name="expiry" class="form-control">
<option value="5 minutes">5 minutes</option> <option value="1">1 hour</option>
<option value="1 hour">1 hour</option> <option value="24">1 day</option>
<option value="1 day">1 day</option> <option value="24 * 7">1 week</option>
<option value="1 week">1 week</option> <option value="24 * 30">1 month</option>
<option value="1 month">1 month</option> <option value="24 * 365">1 year</option>
<option value="1 year">1 year</option> <option value="24 * (20 * 365)" selected>Forever</option>
<option value="" selected="selected">Forever</option>
</select> </select>
<button type="submit" class="btn btn-raised btn-primary">Submit<div class="ripple-container"></div></button> <button type="submit" class="btn btn-raised btn-primary">Submit<div class="ripple-container"></div></button>
</div> </div>
</div> </div>
</div> </div>
</fieldset> </fieldset>

View File

@ -4,6 +4,6 @@ CREATE TABLE `pastebin` (
`hash` char(40) default NULL, `hash` char(40) default NULL,
`data` longtext, `data` longtext,
`delkey` char(40) default NULL, `delkey` char(40) default NULL,
`expiry` TIMESTAMP, `expiry` DATETIME,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
); );

View File

@ -14,6 +14,7 @@ import (
"io/ioutil" "io/ioutil"
"log" "log"
"net/http" "net/http"
"strconv"
"time" "time"
// uniuri is used for easy random string generation // uniuri is used for easy random string generation
@ -107,23 +108,9 @@ func Sha1(paste string) string {
// DurationFromExpiry takes the expiry in string format and returns the duration // DurationFromExpiry takes the expiry in string format and returns the duration
// that the paste will exist for // that the paste will exist for
func DurationFromExpiry(expiry string) time.Duration { func DurationFromExpiry(expiry string) time.Duration {
switch expiry { i, err := strconv.ParseInt(expiry, 10, 64)
case "5 minutes": Check(err)
return time.Minute * 5 return time.Hour * time.Duration(i)
case "1 hour":
return time.Hour + 1 // XXX: did you mean '*'?
case "1 day":
return time.Hour * 24
case "1 week":
return time.Hour * 24 * 7
case "1 month":
return time.Hour * 24 * 30
case "1 year":
return time.Hour * 24 * 365
case "forever":
return time.Hour * 24 * (365 * 20)
}
return time.Hour * 24 * (365 * 20)
} }
// Save function handles the saving of each paste. // Save function handles the saving of each paste.