mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
make /logs command better
previously you had to have a split open with the channel, that's not required anymore.
This commit is contained in:
parent
b469c24154
commit
bcebfca477
|
@ -378,35 +378,34 @@ QString CommandController::execCommand(const QString &textNoEmoji,
|
||||||
auto app = getApp();
|
auto app = getApp();
|
||||||
|
|
||||||
auto logs = new LogsPopup();
|
auto logs = new LogsPopup();
|
||||||
QString target;
|
QString target = words.at(1);
|
||||||
|
|
||||||
if (words.at(1).at(0) == "@")
|
if (target.at(0) == '@')
|
||||||
{
|
{
|
||||||
target = words.at(1).mid(1);
|
target = target.mid(1);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
target = words.at(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logs->setTargetUserName(target);
|
||||||
|
|
||||||
|
std::shared_ptr<Channel> logsChannel = channel;
|
||||||
|
|
||||||
if (words.size() == 3)
|
if (words.size() == 3)
|
||||||
{
|
{
|
||||||
QString channelName = words.at(2);
|
QString channelName = words.at(2);
|
||||||
if (words.at(2).at(0) == "#")
|
if (words.at(2).at(0) == '#')
|
||||||
{
|
{
|
||||||
channelName = words.at(2).mid(1);
|
channelName = channelName.mid(1);
|
||||||
}
|
}
|
||||||
auto logsChannel =
|
|
||||||
|
logs->setChannelName(channelName);
|
||||||
|
|
||||||
|
logsChannel =
|
||||||
app->twitch.server->getChannelOrEmpty(channelName);
|
app->twitch.server->getChannelOrEmpty(channelName);
|
||||||
if (logsChannel != nullptr)
|
|
||||||
{
|
|
||||||
logs->setInfo(logsChannel, target);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
logs->setInfo(channel, target);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logs->setChannel(logsChannel);
|
||||||
|
|
||||||
|
logs->getLogs();
|
||||||
logs->setAttribute(Qt::WA_DeleteOnClose);
|
logs->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
logs->show();
|
logs->show();
|
||||||
return "";
|
return "";
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "IrcMessage"
|
#include "IrcMessage"
|
||||||
#include "common/Channel.hpp"
|
#include "common/Channel.hpp"
|
||||||
#include "common/NetworkRequest.hpp"
|
#include "common/NetworkRequest.hpp"
|
||||||
|
#include "debug/Log.hpp"
|
||||||
#include "providers/twitch/PartialTwitchUser.hpp"
|
#include "providers/twitch/PartialTwitchUser.hpp"
|
||||||
#include "providers/twitch/TwitchChannel.hpp"
|
#include "providers/twitch/TwitchChannel.hpp"
|
||||||
#include "providers/twitch/TwitchMessageBuilder.hpp"
|
#include "providers/twitch/TwitchMessageBuilder.hpp"
|
||||||
|
@ -33,29 +34,47 @@ void LogsPopup::initLayout()
|
||||||
this->setLayout(layout);
|
this->setLayout(layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LogsPopup::setInfo(ChannelPtr channel, QString userName)
|
void LogsPopup::setChannelName(QString channelName)
|
||||||
|
{
|
||||||
|
this->channelName_ = channelName;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LogsPopup::setChannel(std::shared_ptr<Channel> channel)
|
||||||
{
|
{
|
||||||
this->channel_ = channel;
|
this->channel_ = channel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LogsPopup::setTargetUserName(QString userName)
|
||||||
|
{
|
||||||
this->userName_ = userName;
|
this->userName_ = userName;
|
||||||
|
}
|
||||||
|
|
||||||
if (auto twitchChannel =
|
void LogsPopup::getLogs()
|
||||||
dynamic_cast<TwitchChannel *>(this->channel_.get()))
|
{
|
||||||
|
if (this->channel_ && !this->channel_->isEmpty())
|
||||||
{
|
{
|
||||||
this->channelName_ = twitchChannel->getName();
|
if (auto twitchChannel =
|
||||||
|
dynamic_cast<TwitchChannel *>(this->channel_.get()))
|
||||||
|
{
|
||||||
|
this->channelName_ = twitchChannel->getName();
|
||||||
|
this->getLogviewerLogs(twitchChannel->roomId());
|
||||||
|
|
||||||
|
this->setWindowTitle(this->userName_ + "'s logs in #" +
|
||||||
|
this->channelName_);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (!this->channelName_.isEmpty())
|
||||||
{
|
{
|
||||||
|
PartialTwitchUser::byName(this->channelName_)
|
||||||
|
.getId(
|
||||||
|
[=](const QString &roomID) { this->getLogviewerLogs(roomID); },
|
||||||
|
this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get channel ID.
|
log("Unable to get logs, no channel name or something specified");
|
||||||
PartialTwitchUser::byName(this->channelName_)
|
|
||||||
.getId([=](const QString &roomID) {
|
|
||||||
this->getLogviewerLogs(roomID);
|
|
||||||
}, this);
|
|
||||||
|
|
||||||
this->setWindowTitle(this->userName_ + "'s logs in #" +
|
|
||||||
this->channelName_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LogsPopup::setMessages(std::vector<MessagePtr> &messages)
|
void LogsPopup::setMessages(std::vector<MessagePtr> &messages)
|
||||||
|
@ -68,7 +87,6 @@ void LogsPopup::setMessages(std::vector<MessagePtr> &messages)
|
||||||
|
|
||||||
void LogsPopup::getLogviewerLogs(const QString &roomID)
|
void LogsPopup::getLogviewerLogs(const QString &roomID)
|
||||||
{
|
{
|
||||||
|
|
||||||
auto url = QString("https://cbenni.com/api/logs/%1/?nick=%2&before=500")
|
auto url = QString("https://cbenni.com/api/logs/%1/?nick=%2&before=500")
|
||||||
.arg(this->channelName_, this->userName_);
|
.arg(this->channelName_, this->userName_);
|
||||||
|
|
||||||
|
@ -115,7 +133,6 @@ void LogsPopup::getLogviewerLogs(const QString &roomID)
|
||||||
|
|
||||||
void LogsPopup::getOverrustleLogs()
|
void LogsPopup::getOverrustleLogs()
|
||||||
{
|
{
|
||||||
|
|
||||||
QString url =
|
QString url =
|
||||||
QString("https://overrustlelogs.net/api/v1/stalk/%1/%2.json?limit=500")
|
QString("https://overrustlelogs.net/api/v1/stalk/%1/%2.json?limit=500")
|
||||||
.arg(this->channelName_, this->userName_);
|
.arg(this->channelName_, this->userName_);
|
||||||
|
@ -130,11 +147,11 @@ void LogsPopup::getOverrustleLogs()
|
||||||
box->show();
|
box->show();
|
||||||
box->raise();
|
box->raise();
|
||||||
|
|
||||||
static QSet<int> closeButtons {
|
static QSet<int> closeButtons{
|
||||||
QMessageBox::Ok,
|
QMessageBox::Ok,
|
||||||
QMessageBox::Close,
|
QMessageBox::Close,
|
||||||
};
|
};
|
||||||
if (closeButtons.contains(box->exec()))
|
if (closeButtons.contains(box->exec()))
|
||||||
{
|
{
|
||||||
this->close();
|
this->close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,11 @@ class LogsPopup : public BaseWindow
|
||||||
public:
|
public:
|
||||||
LogsPopup();
|
LogsPopup();
|
||||||
|
|
||||||
void setInfo(std::shared_ptr<Channel> channel, QString userName);
|
void setChannelName(QString channelName);
|
||||||
|
void setChannel(std::shared_ptr<Channel> channel);
|
||||||
|
void setTargetUserName(QString userName);
|
||||||
|
|
||||||
|
void getLogs();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ChannelView *channelView_ = nullptr;
|
ChannelView *channelView_ = nullptr;
|
||||||
|
|
|
@ -96,7 +96,9 @@ UserInfoPopup::UserInfoPopup()
|
||||||
|
|
||||||
QObject::connect(viewLogs.getElement(), &Button::leftClicked, [this] {
|
QObject::connect(viewLogs.getElement(), &Button::leftClicked, [this] {
|
||||||
auto logs = new LogsPopup();
|
auto logs = new LogsPopup();
|
||||||
logs->setInfo(this->channel_, this->userName_);
|
logs->setChannel(this->channel_);
|
||||||
|
logs->setTargetUserName(this->userName_);
|
||||||
|
logs->getLogs();
|
||||||
logs->setAttribute(Qt::WA_DeleteOnClose);
|
logs->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
logs->show();
|
logs->show();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue