summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cpaster/pastebindotcomprotocol.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/cpaster/pastebindotcomprotocol.cpp b/src/plugins/cpaster/pastebindotcomprotocol.cpp
index 364ad516e2..619c2238ca 100644
--- a/src/plugins/cpaster/pastebindotcomprotocol.cpp
+++ b/src/plugins/cpaster/pastebindotcomprotocol.cpp
@@ -97,6 +97,19 @@ static inline QByteArray format(Protocol::ContentType ct)
return format;
}
+// According to documentation, Pastebin.com accepts only fixed expiry specifications:
+// N = Never, 10M = 10 Minutes, 1H = 1 Hour, 1D = 1 Day, 1W = 1 Week, 2W = 2 Weeks, 1M = 1 Month,
+// however, 1W and 2W do not work.
+
+static inline QByteArray expirySpecification(int expiryDays)
+{
+ if (expiryDays <= 1)
+ return QByteArray("1D");
+ if (expiryDays <= 31)
+ return QByteArray("1M");
+ return QByteArray("N");
+}
+
void PasteBinDotComProtocol::paste(const QString &text,
ContentType ct, int expiryDays,
const QString &username,
@@ -111,8 +124,8 @@ void PasteBinDotComProtocol::paste(const QString &text,
QByteArray pasteData = API_KEY;
pasteData += "api_option=paste&";
pasteData += "api_paste_expire_date=";
- pasteData += QByteArray::number(expiryDays);
- pasteData += "D&";
+ pasteData += expirySpecification(expiryDays);
+ pasteData += '&';
pasteData += format(ct);
pasteData += "api_paste_name=";
pasteData += QUrl::toPercentEncoding(username);